commit 2e002ff37aea45979a715a0f8015bf60baba4bfb parent 72027a1a56c920e153a5c3d05552f285585cb57c Author: Martin von Gagern <gagern@ma.tum.de> Date: Wed, 19 Aug 2015 22:47:26 +0200 Use jspngopt and pako to create reproducible PNG files for Chrome as well The combination of jspngopt and pako should eliminate possible causes for different PNG encodings, although the core reason for #325 remains unknown. Pako has poorer compression rates than native libz, but optimization can counter that effect, and actually reduce the size of the screenshots. The screenshots for LimitControls and UnsupportedCmds on Firefox used to exhibit subpixel rendering before, for reasons unknown. The regenerated versions don't exhibit this. See #324 for a discussion. Diffstat:
85 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/dockers/Screenshotter/screenshotter.js b/dockers/Screenshotter/screenshotter.js @@ -3,8 +3,10 @@ var childProcess = require("child_process"); var fs = require("fs"); var http = require("http"); -var path = require("path"); +var jspngopt = require("jspngopt"); var net = require("net"); +var pako = require("pako"); +var path = require("path"); var selenium = require("selenium-webdriver"); var app = require("../../server"); @@ -271,10 +273,15 @@ function takeScreenshot(key) { } var file = path.join(dstDir, key + "-" + opts.browser + ".png"); var deferred = new selenium.promise.Deferred(); - fs.writeFile(file, img.buf, function(err) { + var opt = new jspngopt.Optimizer({ + pako: pako + }); + var buf = opt.bufferSync(img.buf); + fs.writeFile(file, buf, function(err) { if (err) { deferred.reject(err); - } else { + } + else { deferred.fulfill(); } }); diff --git a/dockers/Screenshotter/screenshotter.sh b/dockers/Screenshotter/screenshotter.sh @@ -8,7 +8,7 @@ # directly. status=0 -for browserTag in firefox:2.46.0; do +for browserTag in firefox:2.46.0 chrome:2.46.0; do browser=${browserTag%:*} image=selenium/standalone-${browserTag} echo "Starting container for ${image}" diff --git a/package.json b/package.json @@ -20,7 +20,9 @@ "jasmine-node": "2.0.0-beta4", "js-yaml": "^3.3.1", "jshint": "^2.5.6", + "jspngopt": "^0.1.0", "less": "~1.7.5", + "pako": "0.2.7", "nomnom": "^1.8.1", "selenium-webdriver": "^2.46.1", "uglify-js": "~2.4.15" diff --git a/test/screenshotter/images/Accents-chrome.png b/test/screenshotter/images/Accents-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Accents-firefox.png b/test/screenshotter/images/Accents-firefox.png Binary files differ. diff --git a/test/screenshotter/images/ArrayType-chrome.png b/test/screenshotter/images/ArrayType-chrome.png Binary files differ. diff --git a/test/screenshotter/images/ArrayType-firefox.png b/test/screenshotter/images/ArrayType-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Arrays-chrome.png b/test/screenshotter/images/Arrays-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Arrays-firefox.png b/test/screenshotter/images/Arrays-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Baseline-chrome.png b/test/screenshotter/images/Baseline-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Baseline-firefox.png b/test/screenshotter/images/Baseline-firefox.png Binary files differ. diff --git a/test/screenshotter/images/BasicTest-chrome.png b/test/screenshotter/images/BasicTest-chrome.png Binary files differ. diff --git a/test/screenshotter/images/BasicTest-firefox.png b/test/screenshotter/images/BasicTest-firefox.png Binary files differ. diff --git a/test/screenshotter/images/BinomTest-chrome.png b/test/screenshotter/images/BinomTest-chrome.png Binary files differ. diff --git a/test/screenshotter/images/BinomTest-firefox.png b/test/screenshotter/images/BinomTest-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Cases-chrome.png b/test/screenshotter/images/Cases-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Cases-firefox.png b/test/screenshotter/images/Cases-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Colors-chrome.png b/test/screenshotter/images/Colors-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Colors-firefox.png b/test/screenshotter/images/Colors-firefox.png Binary files differ. diff --git a/test/screenshotter/images/DeepFontSizing-chrome.png b/test/screenshotter/images/DeepFontSizing-chrome.png Binary files differ. diff --git a/test/screenshotter/images/DeepFontSizing-firefox.png b/test/screenshotter/images/DeepFontSizing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/DelimiterSizing-chrome.png b/test/screenshotter/images/DelimiterSizing-chrome.png Binary files differ. diff --git a/test/screenshotter/images/DelimiterSizing-firefox.png b/test/screenshotter/images/DelimiterSizing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/DisplayMode-chrome.png b/test/screenshotter/images/DisplayMode-chrome.png Binary files differ. diff --git a/test/screenshotter/images/DisplayMode-firefox.png b/test/screenshotter/images/DisplayMode-firefox.png Binary files differ. diff --git a/test/screenshotter/images/DisplayStyle-chrome.png b/test/screenshotter/images/DisplayStyle-chrome.png Binary files differ. diff --git a/test/screenshotter/images/DisplayStyle-firefox.png b/test/screenshotter/images/DisplayStyle-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Exponents-chrome.png b/test/screenshotter/images/Exponents-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Exponents-firefox.png b/test/screenshotter/images/Exponents-firefox.png Binary files differ. diff --git a/test/screenshotter/images/FractionTest-chrome.png b/test/screenshotter/images/FractionTest-chrome.png Binary files differ. diff --git a/test/screenshotter/images/FractionTest-firefox.png b/test/screenshotter/images/FractionTest-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Functions-chrome.png b/test/screenshotter/images/Functions-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Functions-firefox.png b/test/screenshotter/images/Functions-firefox.png Binary files differ. diff --git a/test/screenshotter/images/GreekLetters-chrome.png b/test/screenshotter/images/GreekLetters-chrome.png Binary files differ. diff --git a/test/screenshotter/images/GreekLetters-firefox.png b/test/screenshotter/images/GreekLetters-firefox.png Binary files differ. diff --git a/test/screenshotter/images/KaTeX-chrome.png b/test/screenshotter/images/KaTeX-chrome.png Binary files differ. diff --git a/test/screenshotter/images/KaTeX-firefox.png b/test/screenshotter/images/KaTeX-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Lap-chrome.png b/test/screenshotter/images/Lap-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Lap_alt-firefox.png b/test/screenshotter/images/Lap_alt-firefox.png Binary files differ. diff --git a/test/screenshotter/images/LeftRight-chrome.png b/test/screenshotter/images/LeftRight-chrome.png Binary files differ. diff --git a/test/screenshotter/images/LeftRight-firefox.png b/test/screenshotter/images/LeftRight-firefox.png Binary files differ. diff --git a/test/screenshotter/images/LeftRightListStyling-chrome.png b/test/screenshotter/images/LeftRightListStyling-chrome.png Binary files differ. diff --git a/test/screenshotter/images/LeftRightListStyling-firefox.png b/test/screenshotter/images/LeftRightListStyling-firefox.png Binary files differ. diff --git a/test/screenshotter/images/LeftRightStyleSizing-chrome.png b/test/screenshotter/images/LeftRightStyleSizing-chrome.png Binary files differ. diff --git a/test/screenshotter/images/LeftRightStyleSizing-firefox.png b/test/screenshotter/images/LeftRightStyleSizing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/LimitControls-chrome.png b/test/screenshotter/images/LimitControls-chrome.png Binary files differ. diff --git a/test/screenshotter/images/LimitControls-firefox.png b/test/screenshotter/images/LimitControls-firefox.png Binary files differ. diff --git a/test/screenshotter/images/NestedFractions-chrome.png b/test/screenshotter/images/NestedFractions-chrome.png Binary files differ. diff --git a/test/screenshotter/images/NestedFractions-firefox.png b/test/screenshotter/images/NestedFractions-firefox.png Binary files differ. diff --git a/test/screenshotter/images/NullDelimiterInteraction-chrome.png b/test/screenshotter/images/NullDelimiterInteraction-chrome.png Binary files differ. diff --git a/test/screenshotter/images/NullDelimiterInteraction-firefox.png b/test/screenshotter/images/NullDelimiterInteraction-firefox.png Binary files differ. diff --git a/test/screenshotter/images/OpLimits-chrome.png b/test/screenshotter/images/OpLimits-chrome.png Binary files differ. diff --git a/test/screenshotter/images/OpLimits-firefox.png b/test/screenshotter/images/OpLimits-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Overline-chrome.png b/test/screenshotter/images/Overline-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Overline-firefox.png b/test/screenshotter/images/Overline-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Phantom-chrome.png b/test/screenshotter/images/Phantom-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Phantom-firefox.png b/test/screenshotter/images/Phantom-firefox.png Binary files differ. diff --git a/test/screenshotter/images/PrimeSpacing-chrome.png b/test/screenshotter/images/PrimeSpacing-chrome.png Binary files differ. diff --git a/test/screenshotter/images/PrimeSpacing-firefox.png b/test/screenshotter/images/PrimeSpacing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/RlapBug-chrome.png b/test/screenshotter/images/RlapBug-chrome.png Binary files differ. diff --git a/test/screenshotter/images/RlapBug-firefox.png b/test/screenshotter/images/RlapBug-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Rule-chrome.png b/test/screenshotter/images/Rule-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Rule-firefox.png b/test/screenshotter/images/Rule-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Sizing-chrome.png b/test/screenshotter/images/Sizing-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Sizing-firefox.png b/test/screenshotter/images/Sizing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/SizingBaseline-chrome.png b/test/screenshotter/images/SizingBaseline-chrome.png Binary files differ. diff --git a/test/screenshotter/images/SizingBaseline-firefox.png b/test/screenshotter/images/SizingBaseline-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Spacing-chrome.png b/test/screenshotter/images/Spacing-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Spacing-firefox.png b/test/screenshotter/images/Spacing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Sqrt-chrome.png b/test/screenshotter/images/Sqrt-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Sqrt-firefox.png b/test/screenshotter/images/Sqrt-firefox.png Binary files differ. diff --git a/test/screenshotter/images/SqrtRoot-chrome.png b/test/screenshotter/images/SqrtRoot-chrome.png Binary files differ. diff --git a/test/screenshotter/images/SqrtRoot-firefox.png b/test/screenshotter/images/SqrtRoot-firefox.png Binary files differ. diff --git a/test/screenshotter/images/SupSubCharacterBox-chrome.png b/test/screenshotter/images/SupSubCharacterBox-chrome.png Binary files differ. diff --git a/test/screenshotter/images/SupSubCharacterBox-firefox.png b/test/screenshotter/images/SupSubCharacterBox-firefox.png Binary files differ. diff --git a/test/screenshotter/images/SupSubHorizSpacing-chrome.png b/test/screenshotter/images/SupSubHorizSpacing-chrome.png Binary files differ. diff --git a/test/screenshotter/images/SupSubHorizSpacing-firefox.png b/test/screenshotter/images/SupSubHorizSpacing-firefox.png Binary files differ. diff --git a/test/screenshotter/images/SupSubOffsets-chrome.png b/test/screenshotter/images/SupSubOffsets-chrome.png Binary files differ. diff --git a/test/screenshotter/images/SupSubOffsets-firefox.png b/test/screenshotter/images/SupSubOffsets-firefox.png Binary files differ. diff --git a/test/screenshotter/images/Text-chrome.png b/test/screenshotter/images/Text-chrome.png Binary files differ. diff --git a/test/screenshotter/images/Text-firefox.png b/test/screenshotter/images/Text-firefox.png Binary files differ. diff --git a/test/screenshotter/images/UnsupportedCmds-chrome.png b/test/screenshotter/images/UnsupportedCmds-chrome.png Binary files differ. diff --git a/test/screenshotter/images/UnsupportedCmds-firefox.png b/test/screenshotter/images/UnsupportedCmds-firefox.png Binary files differ. diff --git a/test/screenshotter/images/VerticalSpacing-chrome.png b/test/screenshotter/images/VerticalSpacing-chrome.png Binary files differ. diff --git a/test/screenshotter/images/VerticalSpacing-firefox.png b/test/screenshotter/images/VerticalSpacing-firefox.png Binary files differ.