forked from mirrors/gecko-dev
This method only is async in order to allow callers to wait for a process switch triggered by the call to `loadURI` to be finished before resolving. With DocumentChannel, we should never trigger a process switch eagerly like this again, so we don't need any of the async behaviour here anymore. This part is largely mechanical changes to tests, removing the `await` calls on `loadURI`, and a follow-up part will remove the actual async logic from `BrowserTestUtils.loadURI`. Differential Revision: https://phabricator.services.mozilla.com/D94641
77 lines
2.9 KiB
JavaScript
77 lines
2.9 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
const MOZILLA_PKIX_ERROR_BASE = Ci.nsINSSErrorsService.MOZILLA_PKIX_ERROR_BASE;
|
|
const MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT = MOZILLA_PKIX_ERROR_BASE + 14;
|
|
|
|
const IFRAME_PAGE =
|
|
getRootDirectory(gTestPath).replace(
|
|
"chrome://mochitests/content",
|
|
"http://example.com"
|
|
) + "dummy_iframe_page.html";
|
|
|
|
// Tests the getSecurityInfo() function exposed on WindowGlobalParent.
|
|
add_task(async function test() {
|
|
await BrowserTestUtils.withNewTab("about:blank", async function(browser) {
|
|
let loaded = BrowserTestUtils.waitForErrorPage(browser);
|
|
BrowserTestUtils.loadURI(browser, "https://self-signed.example.com");
|
|
await loaded;
|
|
|
|
let securityInfo = await browser.browsingContext.currentWindowGlobal.getSecurityInfo();
|
|
securityInfo.QueryInterface(Ci.nsITransportSecurityInfo);
|
|
ok(securityInfo, "Found some security info");
|
|
ok(securityInfo.failedCertChain, "Has a failed cert chain");
|
|
is(
|
|
securityInfo.errorCode,
|
|
MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT,
|
|
"Has the correct error code"
|
|
);
|
|
is(
|
|
securityInfo.serverCert.commonName,
|
|
"self-signed.example.com",
|
|
"Has the correct certificate"
|
|
);
|
|
|
|
loaded = BrowserTestUtils.browserLoaded(browser);
|
|
BrowserTestUtils.loadURI(browser, "http://example.com");
|
|
await loaded;
|
|
|
|
securityInfo = await browser.browsingContext.currentWindowGlobal.getSecurityInfo();
|
|
ok(!securityInfo, "Found no security info");
|
|
|
|
loaded = BrowserTestUtils.browserLoaded(browser);
|
|
BrowserTestUtils.loadURI(browser, "https://example.com");
|
|
await loaded;
|
|
|
|
securityInfo = await browser.browsingContext.currentWindowGlobal.getSecurityInfo();
|
|
securityInfo.QueryInterface(Ci.nsITransportSecurityInfo);
|
|
ok(securityInfo, "Found some security info");
|
|
ok(securityInfo.succeededCertChain, "Has a succeeded cert chain");
|
|
is(securityInfo.errorCode, 0, "Has no error code");
|
|
is(
|
|
securityInfo.serverCert.commonName,
|
|
"example.com",
|
|
"Has the correct certificate"
|
|
);
|
|
|
|
loaded = BrowserTestUtils.browserLoaded(browser);
|
|
BrowserTestUtils.loadURI(browser, IFRAME_PAGE);
|
|
await loaded;
|
|
|
|
// Get the info of the parent, which is HTTP.
|
|
securityInfo = await browser.browsingContext.currentWindowGlobal.getSecurityInfo();
|
|
ok(!securityInfo, "Found no security info");
|
|
|
|
// Get the info of the frame, which is HTTPS.
|
|
securityInfo = await browser.browsingContext.children[0].currentWindowGlobal.getSecurityInfo();
|
|
securityInfo.QueryInterface(Ci.nsITransportSecurityInfo);
|
|
ok(securityInfo, "Found some security info");
|
|
ok(securityInfo.succeededCertChain, "Has a succeeded cert chain");
|
|
is(securityInfo.errorCode, 0, "Has no error code");
|
|
is(
|
|
securityInfo.serverCert.commonName,
|
|
"example.com",
|
|
"Has the correct certificate"
|
|
);
|
|
});
|
|
});
|