summaryrefslogtreecommitdiffstats
path: root/devtools/shared/webconsole/test/test_network_security-hsts.html
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /devtools/shared/webconsole/test/test_network_security-hsts.html
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'devtools/shared/webconsole/test/test_network_security-hsts.html')
-rw-r--r--devtools/shared/webconsole/test/test_network_security-hsts.html100
1 files changed, 100 insertions, 0 deletions
diff --git a/devtools/shared/webconsole/test/test_network_security-hsts.html b/devtools/shared/webconsole/test/test_network_security-hsts.html
new file mode 100644
index 000000000..f69244d8d
--- /dev/null
+++ b/devtools/shared/webconsole/test/test_network_security-hsts.html
@@ -0,0 +1,100 @@
+<!DOCTYPE HTML>
+<html lang="en">
+<head>
+ <meta charset="utf8">
+ <title>Test for the network actor (HSTS detection)</title>
+ <script type="text/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
+ <script type="text/javascript;version=1.8" src="common.js"></script>
+ <!-- Any copyright is dedicated to the Public Domain.
+ - http://creativecommons.org/publicdomain/zero/1.0/ -->
+</head>
+<body>
+<p>Test for the network actor (HSTS detection)</p>
+
+<iframe src="https://example.com/chrome/devtools/shared/webconsole/test/network_requests_iframe.html"></iframe>
+
+<script class="testbody" type="text/javascript;version=1.8">
+SimpleTest.waitForExplicitFinish();
+
+let gCurrentTestCase = -1;
+const TEST_CASES = [
+ {
+ desc: "no HSTS",
+ url: "https://example.com",
+ usesHSTS: false,
+ },
+ {
+ desc: "HSTS from this response",
+ url: "https://example.com/"+
+ "browser/browser/base/content/test/general/browser_star_hsts.sjs",
+ usesHSTS: true,
+ },
+ {
+ desc: "stored HSTS from previous response",
+ url: "https://example.com/",
+ usesHSTS: true,
+ }
+];
+
+function startTest()
+{
+
+ SimpleTest.registerCleanupFunction(() => {
+ // Reset HSTS state.
+ let gSSService = Cc["@mozilla.org/ssservice;1"]
+ .getService(Ci.nsISiteSecurityService);
+
+ let gIOService = Cc["@mozilla.org/network/io-service;1"]
+ .getService(Ci.nsIIOService);
+
+ let uri = gIOService.newURI(TEST_CASES[0].url, null, null);
+ gSSService.removeState(Ci.nsISiteSecurityService.HEADER_HSTS, uri, 0);
+ });
+
+ info("Test detection of HTTP Strict Transport Security.");
+ removeEventListener("load", startTest);
+ attachConsoleToTab(["NetworkActivity"], onAttach);
+}
+
+function onAttach(aState, aResponse)
+{
+ onNetworkEventUpdate = onNetworkEventUpdate.bind(null, aState);
+ aState.dbgClient.addListener("networkEventUpdate", onNetworkEventUpdate);
+
+ runNextCase(aState);
+}
+
+function runNextCase(aState) {
+ gCurrentTestCase++;
+ if (gCurrentTestCase === TEST_CASES.length) {
+ info("Tests ran. Cleaning up.");
+ closeDebugger(aState, SimpleTest.finish);
+ return;
+ }
+
+ let { desc, url } = TEST_CASES[gCurrentTestCase];
+ info("Testing site with " + desc);
+
+ let iframe = document.querySelector("iframe").contentWindow;
+ iframe.wrappedJSObject.makeXhrCallback("GET", url);
+}
+
+function onNetworkEventUpdate(aState, aType, aPacket)
+{
+ function onSecurityInfo(packet) {
+ let data = TEST_CASES[gCurrentTestCase];
+ is(packet.securityInfo.hsts, data.usesHSTS,
+ "Strict Transport Security detected correctly.");
+
+ runNextCase(aState);
+ }
+
+ if (aPacket.updateType === "securityInfo") {
+ aState.client.getSecurityInfo(aPacket.from, onSecurityInfo);
+ }
+}
+
+addEventListener("load", startTest);
+</script>
+</body>
+</html>