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