58 lines
2.1 KiB
HTML
58 lines
2.1 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=1273687
|
|
-->
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Test for Bug 1430164</title>
|
|
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="chrome://global/skin"/>
|
|
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
|
|
<iframe id="t" src="https://example.com"></iframe>
|
|
<iframe id="i" src="http://example.com"></iframe>
|
|
<script type="application/javascript">
|
|
/** Test for Bug 1273687 **/
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
window.onload = () => {
|
|
/* globals t, i */
|
|
runTest(t, true);
|
|
runTest(i, false);
|
|
|
|
// Check we can inherit the system principal
|
|
var s = new Cu.Sandbox(window, { wantGlobalProperties: ["isSecureContext"] } );
|
|
s.ok = ok;
|
|
Cu.evalInSandbox('ok(isSecureContext)', s);
|
|
|
|
// Check options insecure works
|
|
let sb = new Cu.Sandbox('https://www.example.com',
|
|
{ forceSecureContext: false,
|
|
wantGlobalProperties:
|
|
["isSecureContext"]
|
|
});
|
|
ok(!Cu.evalInSandbox('isSecureContext', sb));
|
|
|
|
// Check options secure works
|
|
let sb2 = new Cu.Sandbox('https://www.example.com',
|
|
{ forceSecureContext: true,
|
|
wantGlobalProperties:
|
|
["isSecureContext"]
|
|
});
|
|
ok(Cu.evalInSandbox('isSecureContext', sb2));
|
|
SimpleTest.finish();
|
|
};
|
|
|
|
// Check dom window inheritance works
|
|
function runTest(ifr, expectIsSecureContext) {
|
|
let frameWin = ifr.contentWindow;
|
|
let s = new Cu.Sandbox(frameWin, { wantGlobalProperties: ["isSecureContext"] });
|
|
is(expectIsSecureContext, Cu.evalInSandbox('isSecureContext', s));
|
|
|
|
// Ensure the implementation of 'wantGlobalProperties' matches the DOM window prototype
|
|
let s2 = new Cu.Sandbox(frameWin, { sandboxPrototype: frameWin });
|
|
is(expectIsSecureContext, Cu.evalInSandbox('isSecureContext', s2));
|
|
}
|
|
</script>
|
|
</head>
|
|
</html>
|