tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

file_bug990812-1.xhtml (2359B)


      1 <?xml version="1.0"?>
      2 <?xml-stylesheet href="chrome://global/skin" type="text/css"?>
      3 <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
      4                 type="text/css"?>
      5 <!--
      6 https://bugzilla.mozilla.org/show_bug.cgi?id=990812
      7 -->
      8 <window title="Mozilla Bug 990812"
      9  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
     10  onload="start();">
     11  <label value="Mozilla Bug 990812"/>
     12  <!-- test code goes here -->
     13  <script type="application/javascript"><![CDATA[
     14    /* global messageManager, sendAsyncMessage, getGroupMessageManager */
     15    var FRAME_SCRIPT_GLOBAL = "data:,sendSyncMessage('test', 'global')";
     16    var FRAME_SCRIPT_WINDOW = "data:,sendSyncMessage('test', 'window')";
     17    var FRAME_SCRIPT_GROUP  = "data:,sendSyncMessage('test', 'group')";
     18 
     19    var globalMM = Cc["@mozilla.org/globalmessagemanager;1"].getService();
     20 
     21    function is(val, exp, msg) {
     22      window.arguments[0].is(val, exp, msg);
     23    }
     24 
     25    /**
     26     * Ensures that delayed frame scripts are loaded in the expected order.
     27     * Global frame scripts will be loaded before delayed frame scripts from
     28     * window message managers. The latter will be loaded before group message
     29     * manager frame scripts.
     30     */
     31    function start() {
     32      globalMM.loadFrameScript(FRAME_SCRIPT_GLOBAL, true);
     33      messageManager.loadFrameScript(FRAME_SCRIPT_WINDOW, true);
     34      getGroupMessageManager("test").loadFrameScript(FRAME_SCRIPT_GROUP, true);
     35 
     36      var order = ["global", "window", "group"];
     37 
     38      messageManager.addMessageListener("test", function onMessage(msg) {
     39        var next = order.shift();
     40        window.arguments[0].is(msg.data, next, "received test:" + next);
     41 
     42        if (!order.length) {
     43          window.arguments[0].setTimeout(function() { this.next(); });
     44          window.close();
     45        }
     46      });
     47 
     48      var browser = document.createXULElement("browser");
     49      browser.setAttribute("messagemanagergroup", "test");
     50      browser.setAttribute("src", "about:mozilla");
     51      browser.setAttribute("type", "content");
     52      document.documentElement.appendChild(browser);
     53 
     54      globalMM.removeDelayedFrameScript(FRAME_SCRIPT_GLOBAL);
     55      messageManager.removeDelayedFrameScript(FRAME_SCRIPT_WINDOW);
     56      getGroupMessageManager("test").removeDelayedFrameScript(FRAME_SCRIPT_GROUP);
     57    }
     58 
     59  ]]></script>
     60 
     61 </window>