tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

browser_about-devtools-toolbox_reload.js (2119B)


      1 /* Any copyright is dedicated to the Public Domain.
      2   http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 "use strict";
      5 
      6 /**
      7 * Test that about:devtools-toolbox is reloaded correctly when reusing the same debugger
      8 * client instance.
      9 */
     10 add_task(async function () {
     11  const devToolsClient = await createLocalClient();
     12 
     13  info(
     14    "Preload a local DevToolsClient as this-firefox in the remoteClientManager"
     15  );
     16  const {
     17    remoteClientManager,
     18  } = require("resource://devtools/client/shared/remote-debugging/remote-client-manager.js");
     19  remoteClientManager.setClient(
     20    "this-firefox",
     21    "this-firefox",
     22    devToolsClient,
     23    {}
     24  );
     25  registerCleanupFunction(() => {
     26    remoteClientManager.removeAllClients();
     27  });
     28 
     29  info("Create a dummy target tab");
     30  const targetTab = await addTab("data:text/html,somehtml");
     31 
     32  let onToolboxReady = gDevTools.once("toolbox-ready");
     33  const { tab } = await openAboutToolbox({
     34    id: targetTab.linkedBrowser.browserId,
     35    remoteId: "this-firefox-this-firefox",
     36    type: "tab",
     37  });
     38  await onToolboxReady;
     39 
     40  info("Reload about:devtools-toolbox page");
     41  onToolboxReady = gDevTools.once("toolbox-ready");
     42  tab.linkedBrowser.reload();
     43  await onToolboxReady;
     44 
     45  info("Check if about:devtools-toolbox was reloaded correctly");
     46  const refreshedDoc = tab.linkedBrowser.contentDocument;
     47  ok(
     48    refreshedDoc.querySelector(".debug-target-info"),
     49    "about:devtools-toolbox header is correctly displayed"
     50  );
     51 
     52  const onToolboxDestroy = gDevTools.once("toolbox-destroyed");
     53  await removeTab(tab);
     54  await onToolboxDestroy;
     55  await devToolsClient.close();
     56  await removeTab(targetTab);
     57 });
     58 
     59 async function createLocalClient() {
     60  const {
     61    DevToolsClient,
     62  } = require("resource://devtools/client/devtools-client.js");
     63  const {
     64    DevToolsServer,
     65  } = require("resource://devtools/server/devtools-server.js");
     66  DevToolsServer.init();
     67  DevToolsServer.registerAllActors();
     68  DevToolsServer.allowChromeProcess = true;
     69 
     70  const devToolsClient = new DevToolsClient(DevToolsServer.connectPipe());
     71  await devToolsClient.connect();
     72  return devToolsClient;
     73 }