mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 17:25:36 +00:00
Bug 827976 - Test that the hidden window is not loaded before first paint. r=florian
Differential Revision: https://phabricator.services.mozilla.com/D21087 --HG-- extra : moz-landing-system : lando
This commit is contained in:
parent
b9f00633df
commit
190932ad70
@ -23,6 +23,8 @@ skip-if = !debug
|
||||
[browser_startup.js]
|
||||
[browser_startup_content.js]
|
||||
skip-if = !e10s
|
||||
[browser_startup_hiddenwindow.js]
|
||||
skip-if = os == 'mac'
|
||||
[browser_startup_flicker.js]
|
||||
run-if = debug || devedition || nightly_build # Requires startupRecorder.js, which isn't shipped everywhere by default
|
||||
[browser_tabclose_grow.js]
|
||||
|
@ -0,0 +1,38 @@
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
"use strict";
|
||||
|
||||
add_task(async function() {
|
||||
if (!AppConstants.NIGHTLY_BUILD && !AppConstants.MOZ_DEV_EDITION && !AppConstants.DEBUG) {
|
||||
ok(!("@mozilla.org/test/startuprecorder;1" in Cc),
|
||||
"the startup recorder component shouldn't exist in this non-nightly/non-devedition/" +
|
||||
"non-debug build.");
|
||||
return;
|
||||
}
|
||||
|
||||
let startupRecorder = Cc["@mozilla.org/test/startuprecorder;1"].getService().wrappedJSObject;
|
||||
await startupRecorder.done;
|
||||
|
||||
let extras = Cu.cloneInto(startupRecorder.data.extras, {});
|
||||
|
||||
let phasesExpectations = {
|
||||
"before profile selection": false,
|
||||
"before opening first browser window": false,
|
||||
"before first paint": !Services.prefs.getBoolPref("toolkit.lazyHiddenWindow"),
|
||||
|
||||
// Bug 1531854
|
||||
"before handling user events": true,
|
||||
"before becoming idle": true,
|
||||
};
|
||||
|
||||
for (let phase in extras) {
|
||||
if (!(phase in phasesExpectations)) {
|
||||
ok(false, `Startup phase '${phase}' should be specified.`);
|
||||
continue;
|
||||
}
|
||||
|
||||
is(extras[phase].hiddenWindowLoaded, phasesExpectations[phase],
|
||||
`Hidden window loaded at '${phase}': ${phasesExpectations[phase]}`);
|
||||
}
|
||||
});
|
@ -49,6 +49,7 @@ function startupRecorder() {
|
||||
"image-loading": new Set(),
|
||||
},
|
||||
code: {},
|
||||
extras: {},
|
||||
prefStats: {},
|
||||
};
|
||||
this.done = new Promise(resolve => { this._resolve = resolve; });
|
||||
@ -73,6 +74,9 @@ startupRecorder.prototype = {
|
||||
}
|
||||
}),
|
||||
};
|
||||
this.data.extras[name] = {
|
||||
hiddenWindowLoaded: Services.appShell.hasHiddenWindow,
|
||||
};
|
||||
},
|
||||
|
||||
observe(subject, topic, data) {
|
||||
|
Loading…
Reference in New Issue
Block a user