forked from mirrors/gecko-dev
47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
/* 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": AppConstants.platform === "macosx",
|
|
// 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]}`
|
|
);
|
|
}
|
|
});
|