dom/tests/mochitest/whatwg/postMessage_joined_helper.html

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 <!DOCTYPE html>
     2 <html>
     3 <!--
     4 http://sub1.test1.example.org/tests/dom/tests/mochitest/whatwg/postMessage_joined_helper.html
     5 -->
     6 <head>
     7   <title>postMessage joined domains, inner frame</title>
     8   <script type="application/javascript" src="browserFu.js"></script>
     9   <script type="application/javascript">
    10     function receiveMessage(evt)
    11     {
    12       var response, target, providedOrigin;
    13       var data = evt.data;
    14       if (data === "subframe-test-finished")
    15       {
    16         target = window.parent;
    17         providedOrigin = "http://mochi.test:8888";
    18         response = "test-passed";
    19       }
    20       else if (data === "start-test")
    21       {
    22         target = window.frames.innermost;
    23         providedOrigin = "http://example.org";
    24         response = "start-test";
    25       }
    26       else
    27       {
    28         target = window.parent;
    29         providedOrigin = "http://mochi.test:8888";
    30         response = "not reached";
    31       }
    33       if (evt.lastEventId !== "")
    34         response += " wrong-lastEventId(" + evt.lastEventId + ")";
    36       if (evt.type !== "message")
    37         response += " wrong-type(" + evt.type + ")";
    39       if (evt.target !== window)
    40       {
    41         response += " wrong-target(" + evt.target + ")";
    42         response += " location(" + window.location.href + ")";
    43       }
    45       if (isMozilla && evt.isTrusted === true)
    46       {
    47         response += " unexpected-trusted-event";
    48       }
    50       var origin;
    51       if (data == "subframe-test-finished")
    52         origin = "http://example.org";
    53       else if (data === "start-test")
    54         origin = "http://mochi.test:8888";
    55       else
    56         origin = "unreached";
    58       if (evt.origin !== origin)
    59       {
    60         response += " wrong-origin(" + evt.origin + ")";
    61         response += " location(" + window.location.href + ")";
    62       }
    64       target.postMessage(response, providedOrigin);
    65     }
    67     function setup()
    68     {
    69       var oldDomain = document.domain;
    70       var newDomain = "example.org";
    72       document.domain = newDomain;
    74       var target = document.getElementById("location");
    75       target.textContent = "Location: " + oldDomain +
    76                            ", effective domain: " + newDomain;
    78       window.addEventListener("message", receiveMessage, false);
    79     }
    81     window.addEventListener("load", setup, false);
    82   </script>
    83 </head>
    84 <body>
    85 <p id="location">No location!</p>
    87 <iframe src="http://example.org/tests/dom/tests/mochitest/whatwg/postMessage_joined_helper2.html"
    88         name="innermost"></iframe>
    90 </body>
    91 </html>

mercurial