blob: d530642b9e163a3b9b8ee3562783e8cfa3b367d6 (
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
50
|
["a",
"area"].forEach(type => {
const followed = type === "a" ? true : false;
async_test(t => {
const target = document.createElement("iframe"),
link = document.createElement(type);
t.add_cleanup(() => target.remove());
target.name = "certifiedrandom" + type;
link.target = "certifiedrandom" + type;
link.href = "/";
document.body.appendChild(target);
target.onload = t.step_func(() => {
if(target.contentWindow.location.href === "about:blank")
return;
if(followed) {
assert_equals(target.contentWindow.location.pathname, "/");
t.done();
} else {
assert_unreached();
}
});
link.click();
t.step_timeout(() => {
if(followed) {
assert_unreached();
} else {
t.done();
}
}, 500);
}, "<" + type + "> that is not connected should " + (followed ? "" : "not ") + "be followed");
async_test(t => {
const target = document.createElement("iframe"),
doc = document.implementation.createDocument("", ""),
link = doc.createElementNS("http://www.w3.org/1999/xhtml", type);
t.add_cleanup(() => target.remove());
target.name = "certifiedrandom2" + type;
link.target = "certifiedrandom2" + type;
link.href = "/";
document.body.appendChild(target);
target.onload = t.step_func(() => {
if(target.contentWindow.location.href === "about:blank")
return;
assert_unreached();
});
link.click();
t.step_timeout(() => t.done(), 500);
}, "<" + type + "> that is from an inactive document should not be followed");
});
|