Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

let certCached = true;
let secondTabStarted = false;
function onCertDialogLoaded(subject) {
certCached = false;
// Click OK.
subject.acceptDialog();
}
Services.obs.addObserver(onCertDialogLoaded, "cert-dialog-loaded");
registerCleanupFunction(() => {
Services.obs.removeObserver(onCertDialogLoaded, "cert-dialog-loaded");
});
async function setup() {
await SpecialPowers.pushPrefEnv({
set: [
["security.default_personal_cert", "Ask Every Time"],
["privacy.partition.network_state", false],
],
});
}
function getResult() {
// The first tab always returns true.
if (!secondTabStarted) {
certCached = true;
secondTabStarted = true;
return true;
}
// The second tab returns true if the cert is cached, so it will be different
// from the result of the first tab, and considered isolated.
let ret = certCached;
certCached = true;
secondTabStarted = false;
return ret;
}
// aGetResultImmediately must be true because we need to get the result before
// the next tab is opened.
IsolationTestTools.runTests(
getResult,
null, // aCompareResultFunc
setup, // aBeginFunc
true
); // aGetResultImmediately