file_bug990812.xhtml (2055B)
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 opener.wrappedJSObject.is(val, exp, msg); 23 } 24 25 function start() { 26 globalMM.loadFrameScript(FRAME_SCRIPT_GLOBAL, true); 27 messageManager.loadFrameScript(FRAME_SCRIPT_WINDOW, true); 28 getGroupMessageManager("test").loadFrameScript(FRAME_SCRIPT_GROUP, true); 29 30 var order = ["global", "window", "group"]; 31 32 messageManager.addMessageListener("test", function onMessage(msg) { 33 var next = order.shift(); 34 opener.wrappedJSObject.is(msg.data, next, "received test:" + next); 35 36 if (!order.length) { 37 opener.setTimeout("next()"); 38 window.close(); 39 } 40 }); 41 42 var browser = document.createXULElement("browser"); 43 browser.setAttribute("messagemanagergroup", "test"); 44 browser.setAttribute("src", "about:mozilla"); 45 browser.setAttribute("type", "content"); 46 document.documentElement.appendChild(browser); 47 48 globalMM.removeDelayedFrameScript(FRAME_SCRIPT_GLOBAL); 49 messageManager.removeDelayedFrameScript(FRAME_SCRIPT_WINDOW); 50 getGroupMessageManager("test").removeDelayedFrameScript(FRAME_SCRIPT_GROUP); 51 } 52 53 ]]></script> 54 55 </window>