blob: 871b7e4322849a030407f94aa484f8967a42af40 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Test that our U2F implementation interacts OK with the Google polyfill</title>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
<script>
// We want to run our test script at toplevel, because that's where the
// polyfill runs. But we also need to wait until the pref is set, so go
// ahead and use a dynamically created script element.
SimpleTest.waitForExplicitFinish();
SpecialPowers.pushPrefEnv({ "set": [["security.webauth.u2f", true]] },
doTest);
function doTest() {
// Need a new global for the pref to really take effect.
var iframe = document.createElement("iframe");
document.documentElement.appendChild(iframe);
var win = iframe.contentWindow;
var s = document.createElement("script");
s.textContent = `
'use strict';
try {
var savedU2f = u2f;
var savedRegister = savedU2f.register;
var savedSign = savedU2f.sign;
var u2f = u2f || {};
u2f.register = function() {};
u2f.sign = function() {};
parent.is(u2f, savedU2f, "Should still have the right object");
parent.is(u2f.register, savedRegister, "Should not allow overriding 'sign'");
parent.is(u2f.sign, savedSign, "Should not allow overriding 'sign'");
} catch (e) {
parent.ok(false, "Threw an exception: " + e);
} finally {
parent.SimpleTest.finish();
}
`;
win.document.documentElement.appendChild(s);
}
</script>
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
</body>
</html>
|