commit 0a53a775e80b2aa7dacddf27101e45894f3d3c83
parent 7cdb08bf7eacf4b0053c43aef104bc5437e9b402
Author: Martin von Gagern <gagern@ma.tum.de>
Date: Tue, 1 Dec 2015 14:15:45 +0100
Force Firefox to start up with an empty page
Otherwise it could happen that some Mozilla page gets shown which has a
minimal size larger than the 786px we're requesting. And the screenshot
will span that entire page even if the window is smaller, resulting in a
failure to adjust screenshot size.
See http://kb.mozillazine.org/Browser.startup.homepage_override.mstone
and http://kb.mozillazine.org/Browser.startup.page for details.
Just in case, we also include the docker image digests in the travis build
log, to increase chances of reproducing what we get there.
Diffstat:
2 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/.travis.yml b/.travis.yml
@@ -7,6 +7,7 @@ services:
before_script:
- docker pull selenium/standalone-firefox:2.48.2
- docker pull selenium/standalone-chrome:2.48.2
+ - docker images --no-trunc
script:
- npm test
- dockers/Screenshotter/screenshotter.sh --verify
diff --git a/dockers/Screenshotter/screenshotter.js b/dockers/Screenshotter/screenshotter.js
@@ -8,6 +8,7 @@ var net = require("net");
var pako = require("pako");
var path = require("path");
var selenium = require("selenium-webdriver");
+var firefox = require("selenium-webdriver/firefox");
var app = require("../../server");
var data = require("../../test/screenshotter/ss_data");
@@ -204,6 +205,12 @@ function tryConnect() {
var driver;
function buildDriver() {
var builder = new selenium.Builder().forBrowser(opts.browser);
+ var ffProfile = new firefox.Profile();
+ ffProfile.setPreference(
+ "browser.startup.homepage_override.mstone", "ignore");
+ ffProfile.setPreference("browser.startup.page", 0);
+ var ffOptions = new firefox.Options().setProfile(ffProfile);
+ builder.setFirefoxOptions(ffOptions);
if (seleniumURL) {
builder.usingServer(seleniumURL);
}