/* 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]}` ); } });