forked from mykmelez/gecko
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Bug 1555963 - Add WindowGlobalParent.getSecurityInfo(). r=nika,mconley
This adds an API for fetching security info per frame, no matter if we have a certificate error or a valid certificate. I tried to make this work in a Fission-compatible way, let me know if this is the right approach. Differential Revision: https://phabricator.services.mozilla.com/D34354
- Loading branch information
Johann Hofmann
committed
Jun 21, 2019
1 parent
b04f2ab
commit 0be95c4
Showing
9 changed files
with
166 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
57 changes: 57 additions & 0 deletions
57
browser/base/content/test/siteIdentity/browser_getSecurityInfo.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
/* 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); | ||
await 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); | ||
await BrowserTestUtils.loadURI(browser, "http://example.com"); | ||
await loaded; | ||
|
||
securityInfo = await browser.browsingContext.currentWindowGlobal.getSecurityInfo(); | ||
is(securityInfo, null, "Found no security info"); | ||
|
||
loaded = BrowserTestUtils.browserLoaded(browser); | ||
await 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); | ||
await BrowserTestUtils.loadURI(browser, IFRAME_PAGE); | ||
await loaded; | ||
|
||
// Get the info of the parent, which is HTTP. | ||
securityInfo = await browser.browsingContext.currentWindowGlobal.getSecurityInfo(); | ||
is(securityInfo, null, "Found no security info"); | ||
|
||
// Get the info of the frame, which is HTTPS. | ||
securityInfo = await browser.browsingContext.getChildren()[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"); | ||
}); | ||
}); |
10 changes: 10 additions & 0 deletions
10
browser/base/content/test/siteIdentity/dummy_iframe_page.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<html> | ||
<head> | ||
<title>Dummy iframe test page</title> | ||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"></meta> | ||
</head> | ||
<body> | ||
<iframe src="https://example.org"></iframe> | ||
<p>Dummy test page</p> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters