browser_two_windows.js (1489B)
1 /* Any copyright is dedicated to the Public Domain. 2 * http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 "use strict"; 5 6 const TEST_PAGE = "https://example.com/document-builder.sjs?html=tab"; 7 8 add_task(async function test_broadcasting_two_windows_command() { 9 const window1Browser = gBrowser.selectedTab.linkedBrowser; 10 await loadURL(window1Browser, TEST_PAGE); 11 const browsingContext1 = window1Browser.browsingContext; 12 13 const window2 = await BrowserTestUtils.openNewBrowserWindow(); 14 registerCleanupFunction(() => BrowserTestUtils.closeWindow(window2)); 15 16 const window2Browser = window2.gBrowser.selectedBrowser; 17 await loadURL(window2Browser, TEST_PAGE); 18 const browsingContext2 = window2Browser.browsingContext; 19 20 const rootMessageHandler = createRootMessageHandler( 21 "session-id-broadcasting_two_windows_command" 22 ); 23 const broadcastValue = await sendTestBroadcastCommand( 24 "commandwindowglobalonly", 25 "testBroadcast", 26 {}, 27 contextDescriptorAll, 28 rootMessageHandler 29 ); 30 31 ok( 32 Array.isArray(broadcastValue), 33 "The broadcast returned an array of values" 34 ); 35 is(broadcastValue.length, 2, "The broadcast returned 2 values as expected"); 36 37 ok( 38 broadcastValue.includes("broadcast-" + browsingContext1.id), 39 "The broadcast returned the expected value from tab1" 40 ); 41 ok( 42 broadcastValue.includes("broadcast-" + browsingContext2.id), 43 "The broadcast returned the expected value from tab2" 44 ); 45 46 rootMessageHandler.destroy(); 47 });