mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-12 22:28:59 +02:00
44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
let certCached = true;
|
|
let secondTabStarted = false;
|
|
|
|
function onCertDialogLoaded(subject) {
|
|
certCached = false;
|
|
// Click OK.
|
|
subject.acceptDialog();
|
|
}
|
|
|
|
Services.obs.addObserver(onCertDialogLoaded, "cert-dialog-loaded", false);
|
|
|
|
registerCleanupFunction(() => {
|
|
Services.obs.removeObserver(onCertDialogLoaded, "cert-dialog-loaded");
|
|
});
|
|
|
|
function* setup() {
|
|
yield SpecialPowers.pushPrefEnv({
|
|
set: [["security.default_personal_cert", "Ask Every Time"]]
|
|
});
|
|
}
|
|
|
|
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("https://requireclientcert.example.com",
|
|
getResult,
|
|
null, // aCompareResultFunc
|
|
setup, // aBeginFunc
|
|
true); // aGetResultImmediately
|