dom/ipc/remote-test.js

Wed, 31 Dec 2014 06:55:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:50 +0100
changeset 2
7e26c7da4463
permissions
-rw-r--r--

Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2

     1 /* This Source Code Form is subject to the terms of the Mozilla Public
     2  * License, v. 2.0. If a copy of the MPL was not distributed with this
     3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     5 dump("Loading remote script!\n");
     6 dump(content + "\n");
     8 var cpm = Components.classes["@mozilla.org/childprocessmessagemanager;1"]
     9                             .getService(Components.interfaces.nsISyncMessageSender);
    10 cpm.addMessageListener("cpm-async",
    11   function(m) {
    12     cpm.sendSyncMessage("ppm-sync");
    13     dump(content.document.documentElement);
    14     cpm.sendAsyncMessage("ppm-async");
    15   });
    17 var Cc = Components.classes;
    18 var Ci = Components.interfaces;
    19 var dshell = content.QueryInterface(Ci.nsIInterfaceRequestor)
    20                     .getInterface(Ci.nsIWebNavigation)
    21                     .QueryInterface(Ci.nsIDocShellTreeItem)
    22                     .rootTreeItem
    23                     .QueryInterface(Ci.nsIDocShell);
    26 addEventListener("click",
    27   function(e) {
    28     dump(e.target + "\n");
    29     if (e.target instanceof Components.interfaces.nsIDOMHTMLAnchorElement &&
    30         dshell == docShell) {
    31       var retval = docShell.QueryInterface(Components.interfaces.nsIInterfaceRequestor).
    32                             getInterface(Components.interfaces.nsIContentFrameMessageManager).
    33                             sendSyncMessage("linkclick", { href: e.target.href });
    34       dump(uneval(retval[0]) + "\n");
    35       // Test here also that both retvals are the same
    36       sendAsyncMessage("linkclick-reply-object", uneval(retval[0]) == uneval(retval[1]) ? retval[0] : "");
    37     }
    38   },
    39   true);
    41 addMessageListener("chrome-message",
    42   function(m) {
    43     dump(uneval(m.json) + "\n");
    44     sendAsyncMessage("chrome-message-reply", m.json);
    45   });
    47 addMessageListener("speed-test-start",
    48   function(m) {
    49     while (sendSyncMessage("speed-test")[0].message != "done");
    50   });
    52 addMessageListener("async-echo", function(m) {
    53   sendAsyncMessage(m.name);
    54 });

mercurial