tor-browser

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

browser_webconsole_network_attach.js (2043B)


      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_FILE = "test-network-request.html";
      7 const TEST_PATH =
      8  "https://example.com/browser/devtools/client/webconsole/" + "test/browser/";
      9 const TEST_URI = TEST_PATH + TEST_FILE;
     10 
     11 registerCleanupFunction(async function () {
     12  await new Promise(resolve => {
     13    Services.clearData.deleteData(Ci.nsIClearDataService.CLEAR_ALL, () =>
     14      resolve()
     15    );
     16  });
     17 });
     18 
     19 add_task(async function task() {
     20  await pushPref("devtools.webconsole.filter.net", false);
     21  await pushPref("devtools.webconsole.filter.netxhr", true);
     22  await openNewTabAndToolbox(TEST_URI, "netmonitor");
     23 
     24  const currentTab = gBrowser.selectedTab;
     25  const toolbox = gDevTools.getToolboxForTab(currentTab);
     26  const panel = toolbox.getCurrentPanel().panelWin;
     27 
     28  const netReady = panel.api.once("NetMonitor:PayloadReady");
     29 
     30  // Fire an XHR POST request.
     31  await SpecialPowers.spawn(gBrowser.selectedBrowser, [], function () {
     32    content.wrappedJSObject.testXhrGet();
     33  });
     34 
     35  info("XHR executed");
     36 
     37  await netReady;
     38 
     39  info("NetMonitor:PayloadReady received");
     40 
     41  const { hud } = await toolbox.selectTool("webconsole");
     42 
     43  const xhrUrl = TEST_PATH + "test-data.json";
     44  const messageNode = await waitFor(() =>
     45    findMessageByType(hud, xhrUrl, ".network")
     46  );
     47  const urlNode = messageNode.querySelector(".url");
     48  info("Network message found.");
     49 
     50  const onReady = hud.ui.once("network-request-payload-ready");
     51 
     52  // Expand network log
     53  urlNode.click();
     54 
     55  await onReady;
     56 
     57  info("network-request-payload-ready received");
     58 
     59  await testNetworkMessage(messageNode);
     60  await waitForLazyRequests(toolbox);
     61 });
     62 
     63 async function testNetworkMessage(messageNode) {
     64  const headersTab = messageNode.querySelector("#headers-tab");
     65 
     66  ok(headersTab, "Headers tab is available");
     67 
     68  // Headers tab should be selected by default, so just check its content.
     69  await waitUntil(() =>
     70    messageNode.querySelector("#headers-panel .headers-overview")
     71  );
     72 }