[ve] Fix a circular dependency between cross-tool- and sources-helpers

Bug: 356793735
Change-Id: I5515672db2d0ab971efacf716cbb35d9092e30f5
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5752668
Auto-Submit: Danil Somsikov <dsv@chromium.org>
Commit-Queue: Danil Somsikov <dsv@chromium.org>
Reviewed-by: Alex Rudenko <alexrudenko@chromium.org>
diff --git a/test/e2e/helpers/cross-tool-helper.ts b/test/e2e/helpers/cross-tool-helper.ts
index 43b241f..acd41b3 100644
--- a/test/e2e/helpers/cross-tool-helper.ts
+++ b/test/e2e/helpers/cross-tool-helper.ts
@@ -53,10 +53,13 @@
   return Boolean(tab);
 };
 
-export async function reloadDevTools(
-    options?: DevToolsFrontendReloadOptions&
-    {expectClosedPanels?: string[], enableExperiments?: string[], disableExperiments?: string[]}) {
-  const {frontend} = getBrowserAndPages();
+export async function reloadDevTools(options?: DevToolsFrontendReloadOptions&{
+  expectClosedPanels?: string[],
+  enableExperiments?: string[],
+  disableExperiments?: string[],
+  removeBackendState?: boolean,
+}) {
+  const {frontend, target} = getBrowserAndPages();
   const enableExperiments = options?.enableExperiments || [];
   const disableExperiments = options?.disableExperiments || [];
   if (enableExperiments.length || disableExperiments.length) {
@@ -70,6 +73,10 @@
       }
     })()`);
   }
+  if (options?.removeBackendState) {
+    // Navigate to a different site to make sure that back-end state will be removed.
+    await target.goto('about:blank');
+  }
   await baseReloadDevTools(options);
   const selectedPanel = options?.selectedPanel?.name || options?.queryParams?.panel || 'elements';
   await waitFor(`.panel.${selectedPanel}`);
diff --git a/test/e2e/helpers/sources-helpers.ts b/test/e2e/helpers/sources-helpers.ts
index dd5ed18..e8cf24c 100644
--- a/test/e2e/helpers/sources-helpers.ts
+++ b/test/e2e/helpers/sources-helpers.ts
@@ -34,7 +34,6 @@
 } from '../../shared/helper.js';
 
 import {openSoftContextMenuAndClickOnItem} from './context-menu-helpers.js';
-import {reloadDevTools} from './cross-tool-helper.js';
 import {veImpression} from './visual-logging-helpers.js';
 
 export const ACTIVE_LINE = '.CodeMirror-activeline > pre > span';
@@ -734,12 +733,6 @@
   await frontend.keyboard.up('Shift');
 }
 
-export async function refreshDevToolsAndRemoveBackendState(target: puppeteer.Page) {
-  // Navigate to a different site to make sure that back-end state will be removed.
-  await target.goto('about:blank');
-  await reloadDevTools({selectedPanel: {name: 'sources'}});
-}
-
 export async function enableLocalOverrides() {
   await clickMoreTabsButton();
   await click(OVERRIDES_TAB_SELECTOR);
diff --git a/test/e2e/sources/breakpoint-javascript_test.ts b/test/e2e/sources/breakpoint-javascript_test.ts
index d312bab..749bb47 100644
--- a/test/e2e/sources/breakpoint-javascript_test.ts
+++ b/test/e2e/sources/breakpoint-javascript_test.ts
@@ -17,6 +17,7 @@
   withControlOrMetaKey,
 } from '../../shared/helper.js';
 import {describe, it} from '../../shared/mocha-extensions.js';
+import {reloadDevTools} from '../helpers/cross-tool-helper.js';
 import {getMenuItemAtPosition, getMenuItemTitleAtPosition, openFileQuickOpen} from '../helpers/quick_open-helpers.js';
 import {
   addBreakpointForLine,
@@ -26,7 +27,6 @@
   isEqualOrAbbreviation,
   openSourceCodeEditorForFile,
   PAUSE_INDICATOR_SELECTOR,
-  refreshDevToolsAndRemoveBackendState,
   RESUME_BUTTON,
   retrieveTopCallFrameWithoutResuming,
 } from '../helpers/sources-helpers.js';
@@ -170,7 +170,7 @@
 
   it('can hit a breakpoint on the main thread on a fresh DevTools', async () => {
     await enableExperiment('instrumentation-breakpoints');
-    const {frontend, target} = getBrowserAndPages();
+    const {frontend} = getBrowserAndPages();
 
     await step('navigate to a page and open the Sources tab', async () => {
       await openSourceCodeEditorForFile('breakpoint-hit-on-first-load.js', 'breakpoint-hit-on-first-load.html');
@@ -181,7 +181,7 @@
     });
 
     await step('Navigate to a different site to refresh devtools and remove back-end state', async () => {
-      await refreshDevToolsAndRemoveBackendState(target);
+      await reloadDevTools({removeBackendState: true, selectedPanel: {name: 'sources'}});
     });
 
     await step('Navigate back to test page', () => {
@@ -204,7 +204,7 @@
       '[crbug.com/1229541] can hit a breakpoint in an inline script on the main thread on a fresh DevTools',
       async () => {
         await enableExperiment('instrumentation-breakpoints');
-        const {frontend, target} = getBrowserAndPages();
+        const {frontend} = getBrowserAndPages();
 
         await step('navigate to a page and open the Sources tab', async () => {
           await openSourceCodeEditorForFile('breakpoint-hit-on-first-load.html', 'breakpoint-hit-on-first-load.html');
@@ -215,7 +215,7 @@
         });
 
         await step('Navigate to a different site to refresh devtools and remove back-end state', async () => {
-          await refreshDevToolsAndRemoveBackendState(target);
+          await reloadDevTools({removeBackendState: true, selectedPanel: {name: 'sources'}});
         });
 
         await step('Navigate back to test page', () => {
@@ -235,7 +235,7 @@
   it('can hit a breakpoint in an inline script with sourceURL comment on the main thread on a fresh DevTools',
      async () => {
        await enableExperiment('instrumentation-breakpoints');
-       const {frontend, target} = getBrowserAndPages();
+       const {frontend} = getBrowserAndPages();
 
        await step('navigate to a page and open the Sources tab', async () => {
          await openSourceCodeEditorForFile('breakpoint-hit-on-first-load.html', 'breakpoint-hit-on-first-load.html');
@@ -256,7 +256,7 @@
        });
 
        await step('Navigate to a different site to refresh devtools and remove back-end state', async () => {
-         await refreshDevToolsAndRemoveBackendState(target);
+         await reloadDevTools({removeBackendState: true, selectedPanel: {name: 'sources'}});
        });
 
        await step('Navigate back to test page', () => {
diff --git a/test/e2e/sources/sourcemap_test.ts b/test/e2e/sources/sourcemap_test.ts
index c6f434b..7528cf7 100644
--- a/test/e2e/sources/sourcemap_test.ts
+++ b/test/e2e/sources/sourcemap_test.ts
@@ -24,6 +24,7 @@
 import {describe, it} from '../../shared/mocha-extensions.js';
 import {CONSOLE_TAB_SELECTOR, focusConsolePrompt, getCurrentConsoleMessages} from '../helpers/console-helpers.js';
 import {openSoftContextMenuAndClickOnItem} from '../helpers/context-menu-helpers.js';
+import {reloadDevTools} from '../helpers/cross-tool-helper.js';
 import {
   clickNthChildOfSelectedElementNode,
   focusElementsTree,
@@ -42,7 +43,6 @@
   openSourceCodeEditorForFile,
   openSourcesPanel,
   PAUSE_INDICATOR_SELECTOR,
-  refreshDevToolsAndRemoveBackendState,
   reloadPageAndWaitForSourceFile,
   removeBreakpointForLine,
   RESUME_BUTTON,
@@ -400,7 +400,7 @@
 
   it('reliably hits breakpoints on worker with source map', async () => {
     await enableExperiment('instrumentation-breakpoints');
-    const {target, frontend} = getBrowserAndPages();
+    const {frontend} = getBrowserAndPages();
     await openSourceCodeEditorForFile('sourcemap-stepping-source.js', 'sourcemap-breakpoint.html');
 
     await step('Add a breakpoint at first line of function multiline', async () => {
@@ -408,7 +408,7 @@
     });
 
     await step('Navigate to a different site to refresh devtools and remove back-end state', async () => {
-      await refreshDevToolsAndRemoveBackendState(target);
+      await reloadDevTools({removeBackendState: true, selectedPanel: {name: 'sources'}});
     });
 
     await step('Navigate back to test page', () => {