/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; /** * Check that the "watchedByDevTools" flag is properly handled. */ const EXAMPLE_HTTP_URI = "http://mochi.test:8888/document-builder.sjs?html=
http"; const EXAMPLE_COM_URI = "https://example.com/document-builder.sjs?html=
com"; const EXAMPLE_ORG_URI = "https://example.org/document-builder.sjs?headers=Cross-Origin-Opener-Policy:same-origin&html=
org
"; add_task(async function () { const tab = await addTab(EXAMPLE_HTTP_URI); is( tab.linkedBrowser.browsingContext.watchedByDevTools, false, "watchedByDevTools isn't set when DevTools aren't opened" ); info( "Open a toolbox for the opened tab and check that watchedByDevTools is set" ); await gDevTools.showToolboxForTab(tab, { toolId: "options" }); is( tab.linkedBrowser.browsingContext.watchedByDevTools, true, "watchedByDevTools is set after opening a toolbox" ); info( "Check that watchedByDevTools persist when the tab navigates to a different origin" ); await navigateTo(EXAMPLE_COM_URI); is( tab.linkedBrowser.browsingContext.watchedByDevTools, true, "watchedByDevTools is still set after navigating to a different origin" ); info( "Check that watchedByDevTools persist when navigating to a page that creates a new browsing context" ); const previousBrowsingContextId = tab.linkedBrowser.browsingContext.id; await navigateTo(EXAMPLE_ORG_URI); isnot( tab.linkedBrowser.browsingContext.id, previousBrowsingContextId, "A new browsing context was created" ); is( tab.linkedBrowser.browsingContext.watchedByDevTools, true, "watchedByDevTools is still set after navigating to a new browsing context" ); info("Check that the flag is reset when the toolbox is closed"); await gDevTools.closeToolboxForTab(tab); is( tab.linkedBrowser.browsingContext.watchedByDevTools, false, "watchedByDevTools is reset after closing the toolbox" ); });