Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <title>Test for Principal in MessageManager</title>
5 <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
6 <link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css"?>
7 </head>
8 <body>
10 <script type="application/javascript;version=1.7">
11 "use strict";
13 const Ci = Components.interfaces;
14 const Cc = Components.classes;
15 const Cu = Components.utils;
17 var permManager = Cc["@mozilla.org/permissionmanager;1"]
18 .getService(Ci.nsIPermissionManager);
20 SimpleTest.waitForExplicitFinish();
22 const childFrameURL =
23 "data:text/html,<!DOCTYPE HTML><html><body></body></html>";
25 function childFrameScript() {
26 "use strict";
28 addMessageListener("test:ipcMessage", function(message) {
29 sendAsyncMessage(message.name, "principal: " + (message.principal ? "OK" : "KO"));
31 sendAsyncMessage(message.name, "principal.appId: " +
32 ("appId" in message.principal ? "OK" : "KO"));
34 sendAsyncMessage(message.name, "principal.origin: " +
35 ("origin" in message.principal ? "OK" : "KO"));
37 sendAsyncMessage(message.name, "principal.isInBrowserElement: " +
38 ("isInBrowserElement" in message.principal ? "OK" : "KO"));
40 sendAsyncMessage(message.name, "DONE");
41 });
42 }
44 function runTests() {
45 ok("Browser prefs set.");
47 let iframe = document.createElement("iframe");
48 SpecialPowers.wrap(iframe).mozbrowser = true;
49 iframe.id = "iframe";
50 iframe.src = childFrameURL;
52 iframe.addEventListener("mozbrowserloadend", function() {
53 ok(true, "Got iframe load event.");
55 let mm = SpecialPowers.getBrowserFrameMessageManager(iframe);
56 mm.addMessageListener("test:ipcMessage", function(message) {
57 // We need to wrap to access message.json, and unwrap to do the
58 // identity check.
59 var msg = SpecialPowers.unwrap(SpecialPowers.wrap(message).json);
60 if (/OK$/.exec(msg)) {
61 ok(true, msg);
62 } else if(/KO$/.exec(msg)) {
63 ok(true, false);
64 } else if (/DONE/.exec(msg)) {
65 permManager.removeFromPrincipal(window.document.nodePrincipal, "browser",
66 Ci.nsIPermissionManager.ALLOW_ACTION);
67 SimpleTest.finish();
68 }
69 });
70 mm.loadFrameScript("data:,(" + childFrameScript.toString() + ")();",
71 false);
73 mm.sendAsyncMessage("test:ipcMessage", 42, null, window.document.nodePrincipal);
74 });
76 document.body.appendChild(iframe);
77 }
79 addEventListener("load", function() {
80 info("Got load event.");
82 permManager.addFromPrincipal(window.document.nodePrincipal, "browser",
83 Ci.nsIPermissionManager.ALLOW_ACTION);
85 SpecialPowers.pushPrefEnv({
86 "set": [
87 ["dom.mozBrowserFramesEnabled", true],
88 ["browser.pagethumbnails.capturing_disabled", true]
89 ]
90 }, runTests);
91 });
92 </script>
93 </body>
94 </html>