browser_private_browsing.js (2627B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 const URL = 5 "http://mochi.test:8888/browser/dom/broadcastchannel/tests/blank.html"; 6 7 add_task(async function () { 8 var win1 = OpenBrowserWindow({ private: true }); 9 var win1Promise = new win1.Promise(resolve => { 10 win1.addEventListener( 11 "load", 12 function () { 13 resolve(); 14 }, 15 { once: true } 16 ); 17 }); 18 await win1Promise; 19 20 var win2 = OpenBrowserWindow({ private: false }); 21 var win2Promise = new win2.Promise(resolve => { 22 win2.addEventListener( 23 "load", 24 function () { 25 resolve(); 26 }, 27 { once: true } 28 ); 29 }); 30 await win2Promise; 31 32 var tab1 = BrowserTestUtils.addTab(win1.gBrowser, URL); 33 await BrowserTestUtils.browserLoaded(win1.gBrowser.getBrowserForTab(tab1)); 34 var browser1 = gBrowser.getBrowserForTab(tab1); 35 36 var tab2 = BrowserTestUtils.addTab(win2.gBrowser, URL); 37 await BrowserTestUtils.browserLoaded(win2.gBrowser.getBrowserForTab(tab2)); 38 var browser2 = gBrowser.getBrowserForTab(tab2); 39 40 var p1 = SpecialPowers.spawn(browser1, [], function () { 41 return new content.window.Promise(resolve => { 42 content.window.bc = new content.window.BroadcastChannel("foobar"); 43 content.window.bc.onmessage = function (e) { 44 resolve(e.data); 45 }; 46 }); 47 }); 48 49 var p2 = SpecialPowers.spawn(browser2, [], function () { 50 return new content.window.Promise(resolve => { 51 content.window.bc = new content.window.BroadcastChannel("foobar"); 52 content.window.bc.onmessage = function (e) { 53 resolve(e.data); 54 }; 55 }); 56 }); 57 58 await SpecialPowers.spawn(browser1, [], function () { 59 return new content.window.Promise(resolve => { 60 var bc = new content.window.BroadcastChannel("foobar"); 61 bc.postMessage("hello world from private browsing"); 62 resolve(); 63 }); 64 }); 65 66 await SpecialPowers.spawn(browser2, [], function () { 67 return new content.window.Promise(resolve => { 68 var bc = new content.window.BroadcastChannel("foobar"); 69 bc.postMessage("hello world from non private browsing"); 70 resolve(); 71 }); 72 }); 73 74 var what1 = await p1; 75 is( 76 what1, 77 "hello world from private browsing", 78 "No messages received from the other window." 79 ); 80 81 var what2 = await p2; 82 is( 83 what2, 84 "hello world from non private browsing", 85 "No messages received from the other window." 86 ); 87 88 BrowserTestUtils.removeTab(tab1); 89 await BrowserTestUtils.closeWindow(win1); 90 91 BrowserTestUtils.removeTab(tab2); 92 await BrowserTestUtils.closeWindow(win2); 93 });