From ea1f6c240c1e3be8382407a2afd483431a8912e4 Mon Sep 17 00:00:00 2001
From: Butkovits Atila <abutkovits@mozilla.com>
Date: Wed, 21 Aug 2024 03:57:07 +0300
Subject: [PATCH] Backed out 2 changesets (bug 1908095) for causing failures at
 browser_dbg-features-breakpoints.js. a=backout

Backed out changeset 21bf8880f772 (bug 1908095)
Backed out changeset 85060db8ce99 (bug 1908095)
---
 ...er_aboutdebugging_addons_debug_debugger.js | 69 +------------------
 .../browser_dbg-features-breakable-lines.js   |  4 +-
 ...rowser_dbg-features-breakable-positions.js | 11 +--
 .../browser_dbg-features-breakpoints.js       | 59 ----------------
 .../browser_dbg-features-source-tree.js       |  7 +-
 .../sourcemaps-reload-compressed/package.json | 10 +--
 .../v1/index.html                             | 10 ---
 .../v1/log-worker.js                          |  3 -
 .../v1/react-component-module.js              |  2 -
 .../sourcemaps-reload-compressed/v1/script.js |  4 +-
 .../v1/index.html                             |  7 --
 .../v1/log-worker.js                          |  3 -
 .../client/debugger/test/mochitest/head.js    |  1 -
 .../DevToolsProcessChild.sys.mjs              | 45 ++----------
 .../target-watchers/worker.sys.mjs            | 18 -----
 15 files changed, 22 insertions(+), 231 deletions(-)
 delete mode 100644 devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/log-worker.js
 delete mode 100644 devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/react-component-module.js
 delete mode 100644 devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-uncompressed/v1/log-worker.js

diff --git a/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_debug_debugger.js b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_debug_debugger.js
index 6ad18bce0fcb2..123d3ccdf178b 100644
--- a/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_debug_debugger.js
+++ b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_addons_debug_debugger.js
@@ -2,11 +2,6 @@
    http://creativecommons.org/publicdomain/zero/1.0/ */
 "use strict";
 
-Services.scriptloader.loadSubScript(
-  "chrome://mochitests/content/browser/devtools/client/debugger/test/mochitest/shared-head.js",
-  this
-);
-
 /* import-globals-from helper-addons.js */
 Services.scriptloader.loadSubScript(CHROME_URL_ROOT + "helper-addons.js", this);
 
@@ -14,10 +9,10 @@ const L10N = new LocalizationHelper(
   "devtools/client/locales/toolbox.properties"
 );
 
-const EXTENSION_NAME = "temporary-web-extension";
-const EXTENSION_ID = "test-devtools@mozilla.org";
+add_task(async () => {
+  const EXTENSION_NAME = "temporary-web-extension";
+  const EXTENSION_ID = "test-devtools@mozilla.org";
 
-add_task(async function testOpenDebuggerReload() {
   await enableExtensionDebugging();
 
   info(
@@ -89,61 +84,3 @@ add_task(async function testOpenDebuggerReload() {
   await removeTemporaryExtension(EXTENSION_NAME, document);
   await removeTab(tab);
 });
-
-add_task(async function testAddAndRemoveBreakpoint() {
-  await enableExtensionDebugging();
-
-  const { document, tab, window } = await openAboutDebugging();
-  await selectThisFirefoxPage(document, window.AboutDebugging.store);
-
-  await installTemporaryExtensionFromXPI(
-    {
-      background() {
-        window.invokeLogFromWebextension = () => {
-          console.log("From webextension");
-        };
-      },
-      id: EXTENSION_ID,
-      name: EXTENSION_NAME,
-    },
-    document
-  );
-
-  // Select the debugger right away to avoid any noise coming from the inspector.
-  await pushPref("devtools.toolbox.selectedTool", "jsdebugger");
-  const { devtoolsWindow } = await openAboutDevtoolsToolbox(
-    document,
-    tab,
-    window,
-    EXTENSION_NAME
-  );
-  const toolbox = getToolbox(devtoolsWindow);
-  const dbg = createDebuggerContext(toolbox);
-
-  info("Select the source and add a breakpoint");
-  // Note: the background script filename is dynamically generated id, so we
-  // simply get the first source from the list.
-  const displayedSources = dbg.selectors.getDisplayedSourcesList();
-  const backgroundScript = displayedSources[0];
-  await selectSource(dbg, backgroundScript);
-  await addBreakpoint(dbg, backgroundScript, 3);
-
-  info("Trigger the breakpoint and wait for the debugger to pause");
-  const webconsole = await toolbox.selectTool("webconsole");
-  const { hud } = webconsole;
-  hud.ui.wrapper.dispatchEvaluateExpression("invokeLogFromWebextension()");
-  await waitForPaused(dbg);
-
-  info("Resume and remove the breakpoint");
-  await resume(dbg);
-  await removeBreakpoint(dbg, backgroundScript.id, 3);
-
-  info("Trigger the function again and check the debugger does not pause");
-  hud.ui.wrapper.dispatchEvaluateExpression("invokeLogFromWebextension()");
-  await wait(500);
-  assertNotPaused(dbg);
-
-  await closeWebExtAboutDevtoolsToolbox(devtoolsWindow, window);
-  await removeTemporaryExtension(EXTENSION_NAME, document);
-  await removeTab(tab);
-});
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg-features-breakable-lines.js b/devtools/client/debugger/test/mochitest/browser_dbg-features-breakable-lines.js
index b197126ed8e3d..872530025fce0 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg-features-breakable-lines.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg-features-breakable-lines.js
@@ -19,14 +19,12 @@ add_task(async function testBreakableLinesOverReloads() {
   );
 
   info("Assert breakable lines of the first html page load");
-  await assertBreakableLines(dbg, "index.html", 85, [
+  await assertBreakableLines(dbg, "index.html", 78, [
     ...getRange(16, 17),
     21,
     ...getRange(24, 25),
     30,
     36,
-    39,
-    ...getRange(41, 43),
   ]);
 
   info("Assert breakable lines of the first original source file, original.js");
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg-features-breakable-positions.js b/devtools/client/debugger/test/mochitest/browser_dbg-features-breakable-positions.js
index 994199c12ebc2..8921b83f2bc17 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg-features-breakable-positions.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg-features-breakable-positions.js
@@ -30,7 +30,7 @@ add_task(async function testBreakableLinesOverReloads() {
   );
 
   info("Assert breakable lines of the first html page load");
-  await assertBreakablePositions(dbg, "index.html", 85, [
+  await assertBreakablePositions(dbg, "index.html", 78, [
     { line: 16, columns: [6, 14] },
     { line: 17, columns: [] },
     { line: 21, columns: [12, 20, 48] },
@@ -38,23 +38,16 @@ add_task(async function testBreakableLinesOverReloads() {
     { line: 25, columns: [] },
     { line: 30, columns: [] },
     { line: 36, columns: [] },
-    { line: 39, columns: [] },
-    { line: 41, columns: [8, 18] },
-    { line: 42, columns: [] },
-    { line: 43, columns: [] },
   ]);
 
   info("Pretty print first html page load and assert breakable lines");
   await prettyPrint(dbg);
-  await assertBreakablePositions(dbg, "index.html:formatted", 96, [
+  await assertBreakablePositions(dbg, "index.html:formatted", 87, [
     { line: 16, columns: [0, 8] },
     { line: 22, columns: [0, 8, 35] },
     { line: 27, columns: [0, 8] },
     { line: 28, columns: [] },
     { line: 36, columns: [] },
-    { line: 48, columns: [] },
-    { line: 50, columns: [2, 12] },
-    { line: 53, columns: [] },
   ]);
   await closeTab(dbg, "index.html:formatted");
 
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg-features-breakpoints.js b/devtools/client/debugger/test/mochitest/browser_dbg-features-breakpoints.js
index 107e3a9ef8f6a..0f4ad6959a514 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg-features-breakpoints.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg-features-breakpoints.js
@@ -71,62 +71,3 @@ add_task(
     await assertNotPaused(dbg);
   }
 );
-
-/**
- * Tests that the source tree works with all the various types of sources
- * coming from the integration test page.
- *
- * Also assert a few extra things on sources with query strings:
- *  - they can be pretty printed,
- *  - quick open matches them,
- *  - you can set breakpoint on them.
- */
-add_task(async function testSourceTreeOnTheIntegrationTestPage() {
-  const dbg = await initDebuggerWithAbsoluteURL("about:blank");
-
-  await navigateToAbsoluteURL(
-    dbg,
-    TEST_URL,
-    "index.html",
-    "script.js",
-    "log-worker.js"
-  );
-
-  info("Select the source and add a breakpoint");
-  await selectSource(dbg, "script.js");
-  await addBreakpoint(dbg, "script.js", 7);
-
-  info("Trigger the breakpoint and wait for the debugger to pause");
-  invokeInTab("nonSourceMappedFunction");
-  await waitForPaused(dbg);
-
-  info("Resume and remove the breakpoint");
-  await resume(dbg);
-  await removeBreakpoint(dbg, findSource(dbg, "script.js").id, 7);
-
-  info("Trigger the function again and check the debugger does not pause");
-  invokeInTab("nonSourceMappedFunction");
-  await wait(500);
-  assertNotPaused(dbg);
-
-  info("[worker] Select the source and add a breakpoint");
-  await selectSource(dbg, "log-worker.js");
-  await addBreakpoint(dbg, "log-worker.js", 2);
-
-  info("[worker] Trigger the breakpoint and wait for the debugger to pause");
-  invokeInTab("invokeLogWorker");
-  await waitForPaused(dbg);
-
-  info("[worker] Resume and remove the breakpoint");
-  await resume(dbg);
-  await removeBreakpoint(dbg, findSource(dbg, "log-worker.js").id, 2);
-
-  info(
-    "[worker] Trigger the function again and check the debugger does not pause"
-  );
-  invokeInTab("invokeLogWorker");
-  await wait(500);
-  assertNotPaused(dbg);
-
-  dbg.toolbox.closeToolbox();
-});
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg-features-source-tree.js b/devtools/client/debugger/test/mochitest/browser_dbg-features-source-tree.js
index 415fa011ff2e6..121e4a0284d33 100644
--- a/devtools/client/debugger/test/mochitest/browser_dbg-features-source-tree.js
+++ b/devtools/client/debugger/test/mochitest/browser_dbg-features-source-tree.js
@@ -320,12 +320,11 @@ add_task(async function testSourceTreeOnTheIntegrationTestPage() {
     .getAllThreads()
     .find(thread => thread.name == "Main Thread");
 
-  // When EFT is disabled the iframe's source is meld into the main target.
-  const expectedSameUrlSources = isEveryFrameTargetEnabled() ? 3 : 4;
   is(
     sourceActors.filter(actor => actor.thread == mainThread.actor).length,
-    expectedSameUrlSources,
-    `same-url.js is loaded ${expectedSameUrlSources} times in the main thread`
+    // When EFT is disabled the iframe's source is meld into the main target
+    isEveryFrameTargetEnabled() ? 3 : 4,
+    "same-url.js is loaded 3 times in the main thread"
   );
 
   if (isEveryFrameTargetEnabled()) {
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/package.json b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/package.json
index f0d68f6cc4dd3..30187c5de4051 100644
--- a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/package.json
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/package.json
@@ -11,10 +11,10 @@
   "license": "MPL-2.0",
   "dependencies": {},
   "devDependencies": {
-    "@babel/core": "7.25.2",
-    "babel-loader": "7.1.2",
-    "babel-preset-es2015": "6.24.1",
-    "webpack": "4.47.0",
-    "webpack-cli": "4.10.0"
+    "babel-core": "^7.0.0-beta.3",
+    "babel-loader": "^7.1.2",
+    "babel-preset-es2015": "^6.24.1",
+    "webpack": "^4",
+    "webpack-cli": ""
   }
 }
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/index.html b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/index.html
index fea692d57e461..7fa9f4d30648f 100644
--- a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/index.html
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/index.html
@@ -35,13 +35,6 @@
       `);
     </script>
 
-    <script>
-      const logWorker = new Worker("log-worker.js");
-      function invokeLogWorker() {
-        logWorker.postMessage({yo: 'yo'})
-      }
-    </script>
-
     <!-- Test JS file with encoded characters as well as custom protocol -->
     <script>
     //# sourceURL=foo://bar/%e6%96%87%e5%ad%97%e3%82%b3%e3%83%bc%e3%83%89.js
@@ -75,9 +68,6 @@
     <!-- Another bundle/generated source that contains removed-original.js -->
     <script src="replaced-bundle.js"></script>
 
-    <!-- A script that looks like a react module -->
-    <script src="react-component-module.js"></script>
-
     <iframe src="iframe.html"></script>
   </body>
 
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/log-worker.js b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/log-worker.js
deleted file mode 100644
index 11eb5eed8b0ec..0000000000000
--- a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/log-worker.js
+++ /dev/null
@@ -1,3 +0,0 @@
-self.onmessage = function onmessage() {
-  console.log("hi");
-};
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/react-component-module.js b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/react-component-module.js
deleted file mode 100644
index 675b42b0a4273..0000000000000
--- a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/react-component-module.js
+++ /dev/null
@@ -1,2 +0,0 @@
-// Use a code pattern identified by the parser worker to classify this module as a React Component
-var isReactComponent = true;
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/script.js b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/script.js
index 9306ac0edadfd..522fa404a002e 100644
--- a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/script.js
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-compressed/v1/script.js
@@ -3,6 +3,6 @@ console.log("only one breakable line");
 
 function nonSourceMappedFunction () {
   console.log("non source mapped function");
-  // This will call a function from removed-original.js
-  return removedOriginal();
+  // This will call a function from original-with-query.js
+  return originalWithQuery();
 }
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-uncompressed/v1/index.html b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-uncompressed/v1/index.html
index fea692d57e461..56726c11e5fc0 100644
--- a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-uncompressed/v1/index.html
+++ b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-uncompressed/v1/index.html
@@ -35,13 +35,6 @@
       `);
     </script>
 
-    <script>
-      const logWorker = new Worker("log-worker.js");
-      function invokeLogWorker() {
-        logWorker.postMessage({yo: 'yo'})
-      }
-    </script>
-
     <!-- Test JS file with encoded characters as well as custom protocol -->
     <script>
     //# sourceURL=foo://bar/%e6%96%87%e5%ad%97%e3%82%b3%e3%83%bc%e3%83%89.js
diff --git a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-uncompressed/v1/log-worker.js b/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-uncompressed/v1/log-worker.js
deleted file mode 100644
index 11eb5eed8b0ec..0000000000000
--- a/devtools/client/debugger/test/mochitest/examples/sourcemaps-reload-uncompressed/v1/log-worker.js
+++ /dev/null
@@ -1,3 +0,0 @@
-self.onmessage = function onmessage() {
-  console.log("hi");
-};
diff --git a/devtools/client/debugger/test/mochitest/head.js b/devtools/client/debugger/test/mochitest/head.js
index f1a45215227b6..6130e02133a32 100644
--- a/devtools/client/debugger/test/mochitest/head.js
+++ b/devtools/client/debugger/test/mochitest/head.js
@@ -136,7 +136,6 @@ const INTEGRATION_TEST_PAGE_SOURCES = [
   // But there is even more source actors (named evals and duplicated script tags).
   "same-url.sjs",
   "same-url.sjs",
-  "log-worker.js",
 ];
 // The iframe one is only available when fission is enabled, or EFT
 if (isFissionEnabled() || isEveryFrameTargetEnabled()) {
diff --git a/devtools/server/connectors/js-process-actor/DevToolsProcessChild.sys.mjs b/devtools/server/connectors/js-process-actor/DevToolsProcessChild.sys.mjs
index 6af12353a27bc..b3e2d6d4711cb 100644
--- a/devtools/server/connectors/js-process-actor/DevToolsProcessChild.sys.mjs
+++ b/devtools/server/connectors/js-process-actor/DevToolsProcessChild.sys.mjs
@@ -461,51 +461,18 @@ export class DevToolsProcessChild extends JSProcessActorChild {
     if (!watcherDataObject) {
       return;
     }
-    const { actors, sessionData, watchingTargetTypes } = watcherDataObject;
 
     // Maintain the copy of `sessionData` so that it is up-to-date when
     // a new worker target needs to be instantiated
-    lazy.SessionDataHelpers.removeSessionDataEntry(sessionData, type, entries);
+    lazy.SessionDataHelpers.removeSessionDataEntry(
+      watcherDataObject.sessionData,
+      type,
+      entries
+    );
 
-    for (const targetActor of actors) {
+    for (const targetActor of watcherDataObject.actors) {
       targetActor.removeSessionDataEntry(type, entries);
     }
-
-    // Special code paths for webextension toolboxes and worker targets
-    // See addOrSetSessionDataEntry for more details.
-
-    if (sessionData.sessionContext.type == "webextension") {
-      const connectionPrefix = watcherActorID.replace(/watcher\d+$/, "");
-      const targetActors = lazy.TargetActorRegistry.getTargetActors(
-        sessionData.sessionContext,
-        connectionPrefix
-      );
-      if (targetActors.length) {
-        targetActors[0].removeSessionDataEntry(type, entries);
-      }
-    }
-
-    if (watchingTargetTypes.includes("worker")) {
-      this.#watchers.worker.watcher.removeSessionDataEntry(
-        watcherDataObject,
-        type,
-        entries
-      );
-    }
-    if (watchingTargetTypes.includes("service_worker")) {
-      this.#watchers.service_worker.watcher.removeSessionDataEntry(
-        watcherDataObject,
-        type,
-        entries
-      );
-    }
-    if (watchingTargetTypes.includes("shared_worker")) {
-      this.#watchers.shared_worker.watcher.removeSessionDataEntry(
-        watcherDataObject,
-        type,
-        entries
-      );
-    }
   }
 
   /**
diff --git a/devtools/server/connectors/js-process-actor/target-watchers/worker.sys.mjs b/devtools/server/connectors/js-process-actor/target-watchers/worker.sys.mjs
index 39c5ee63ab50e..92d3e334e1187 100644
--- a/devtools/server/connectors/js-process-actor/target-watchers/worker.sys.mjs
+++ b/devtools/server/connectors/js-process-actor/target-watchers/worker.sys.mjs
@@ -76,24 +76,6 @@ export class WorkerTargetWatcherClass {
     await Promise.all(promises);
   }
 
-  removeSessionDataEntry(watcherDataObject, type, entries) {
-    for (const { dbg, workerThreadServerForwardingPrefix } of watcherDataObject
-      .workers[this.#workerTargetType]) {
-      if (!isWorkerDebuggerAlive(dbg)) {
-        continue;
-      }
-
-      dbg.postMessage(
-        JSON.stringify({
-          type: "remove-session-data-entry",
-          forwardingPrefix: workerThreadServerForwardingPrefix,
-          dataEntryType: type,
-          entries,
-        })
-      );
-    }
-  }
-
   /**
    * Called whenever a new Worker is instantiated in the current process
    *
-- 
GitLab