|
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/. */ |
|
4 |
|
5 dump("Loading remote script!\n"); |
|
6 dump(content + "\n"); |
|
7 |
|
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 }); |
|
16 |
|
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); |
|
24 |
|
25 |
|
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); |
|
40 |
|
41 addMessageListener("chrome-message", |
|
42 function(m) { |
|
43 dump(uneval(m.json) + "\n"); |
|
44 sendAsyncMessage("chrome-message-reply", m.json); |
|
45 }); |
|
46 |
|
47 addMessageListener("speed-test-start", |
|
48 function(m) { |
|
49 while (sendSyncMessage("speed-test")[0].message != "done"); |
|
50 }); |
|
51 |
|
52 addMessageListener("async-echo", function(m) { |
|
53 sendAsyncMessage(m.name); |
|
54 }); |