|
1 <!DOCTYPE HTML> |
|
2 <html> |
|
3 <!-- |
|
4 https://bugzilla.mozilla.org/show_bug.cgi?id=916945 |
|
5 --> |
|
6 <head> |
|
7 <meta charset="utf-8"> |
|
8 <title>Test for Bug 916945</title> |
|
9 <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> |
|
10 <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> |
|
11 <script type="application/javascript"> |
|
12 |
|
13 /** Test for Bug 916945 **/ |
|
14 SimpleTest.waitForExplicitFinish(); |
|
15 |
|
16 var gLoadCount = 0; |
|
17 function loaded() { |
|
18 if (++gLoadCount == 2) |
|
19 go(); |
|
20 } |
|
21 function go() { |
|
22 // Both same-origin and cross-origin names should be visible if they're set |
|
23 // on the iframe element. |
|
24 ok('winA' in window, "same-origin named access works"); |
|
25 ok(winA instanceof Window, "same-origin named access works"); |
|
26 ok('winB' in window, "cross-origin named access works when iframe name matches"); |
|
27 // XXXbholley - flip me when Window moves to new bindings. |
|
28 todo_is(winB instanceof Window, "cross-origin named access works when iframe name matches"); |
|
29 |
|
30 // Setting the 'name' attribute should propagate to the docshell. |
|
31 var ifrB = document.getElementById('ifrB'); |
|
32 ifrB.setAttribute('name', 'foo'); |
|
33 is(SpecialPowers.wrap(ifrB).contentWindow.name, 'foo', 'attribute sets propagate to the docshell'); |
|
34 ok('foo' in window, "names are dynamic if updated via setAttribute"); |
|
35 // XXXbholley - flip me when Window moves to new bindings. |
|
36 todo('foo' instanceof Window, "names are dynamic if updated via setAttribute"); |
|
37 |
|
38 // Setting window.name on the subframe should not propagate to the attribute. |
|
39 SpecialPowers.wrap(ifrB).contentWindow.name = 'bar'; |
|
40 is(ifrB.getAttribute('name'), 'foo', 'docshell updates dont propagate to the attribute'); |
|
41 |
|
42 // When the frame element attribute and docshell name don't match, nothing is returned. |
|
43 ok(!('foo' in window), "frame element name not resolved if it doesn't match the docshell"); |
|
44 ok(!('bar' in window), "docshell name not resolved if it doesn't match the frame element"); |
|
45 |
|
46 SimpleTest.finish(); |
|
47 } |
|
48 |
|
49 </script> |
|
50 </head> |
|
51 <body> |
|
52 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=916945">Mozilla Bug 916945</a> |
|
53 <p id="display"></p> |
|
54 <div id="content" style="display: none"> |
|
55 |
|
56 </div> |
|
57 <iframe id="ifrA" name="winA" onload="loaded();" src="file_empty.html"></iframe> |
|
58 <iframe id="ifrB" name="winB" onload="loaded();" src="http://example.org/tests/js/xpconnect/tests/mochitest/file_empty.html"></iframe> |
|
59 <pre id="test"> |
|
60 </pre> |
|
61 </body> |
|
62 </html> |