browser(firefox): introduce auto-open-devtools-for-tabs CLI flag (#7580)
This commit is contained in:
parent
5d62d01450
commit
786f6c4d31
|
|
@ -1,2 +1,2 @@
|
||||||
1268
|
1269
|
||||||
Changed: lushnikov@chromium.org Thu 01 Jul 2021 03:59:44 AM PDT
|
Changed: max@schmitt.mx Tue Jul 13 16:28:05 UTC 2021
|
||||||
|
|
|
||||||
|
|
@ -171,6 +171,67 @@ index 040c7b124dec6bb254563bbe74fe50012cb077a3..b4e6b8132786af70e8ad0dce88b67c28
|
||||||
|
|
||||||
const transportProvider = {
|
const transportProvider = {
|
||||||
setListener(upgradeListener) {
|
setListener(upgradeListener) {
|
||||||
|
diff --git a/devtools/startup/DevToolsStartup.jsm b/devtools/startup/DevToolsStartup.jsm
|
||||||
|
index 2c1f767f89f596fb5732572ad4e0cad3cafcc7c3..99401071ad93a2f2a3ba37e7643920f2e05e8b25 100644
|
||||||
|
--- a/devtools/startup/DevToolsStartup.jsm
|
||||||
|
+++ b/devtools/startup/DevToolsStartup.jsm
|
||||||
|
@@ -375,7 +375,7 @@ DevToolsStartup.prototype = {
|
||||||
|
|
||||||
|
// Store devtoolsFlag to check it later in onWindowReady.
|
||||||
|
this.devtoolsFlag = flags.devtools;
|
||||||
|
-
|
||||||
|
+ this.autoOpenDevtoolsForTabs = flags.autoOpenDevtoolsForTabs;
|
||||||
|
/* eslint-disable mozilla/balanced-observers */
|
||||||
|
// We are not expecting to remove those listeners until Firefox closes.
|
||||||
|
|
||||||
|
@@ -438,6 +438,7 @@ DevToolsStartup.prototype = {
|
||||||
|
|
||||||
|
const console = cmdLine.handleFlag("jsconsole", false);
|
||||||
|
const devtools = cmdLine.handleFlag("devtools", false);
|
||||||
|
+ const autoOpenDevtoolsForTabs = cmdLine.handleFlag("auto-open-devtools-for-tabs", false);
|
||||||
|
|
||||||
|
let devToolsServer;
|
||||||
|
try {
|
||||||
|
@@ -460,7 +461,7 @@ DevToolsStartup.prototype = {
|
||||||
|
debuggerFlag = cmdLine.handleFlag("jsdebugger", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
- return { console, debugger: debuggerFlag, devtools, devToolsServer };
|
||||||
|
+ return { console, debugger: debuggerFlag, devtools, autoOpenDevtoolsForTabs, devToolsServer };
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -482,9 +483,22 @@ DevToolsStartup.prototype = {
|
||||||
|
this._firstWindowReadyReceived = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (this.autoOpenDevtoolsForTabs) {
|
||||||
|
+ this.handleDevToolsOpenForEveryTab(window);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
JsonView.initialize();
|
||||||
|
},
|
||||||
|
|
||||||
|
+ handleDevToolsOpenForEveryTab(window) {
|
||||||
|
+ const require = this.initDevTools("CommandLine");
|
||||||
|
+ const { gDevTools } = require("devtools/client/framework/devtools");
|
||||||
|
+ window.gBrowser.tabContainer.addEventListener('TabOpen', async (event) => {
|
||||||
|
+ await gDevTools.showToolboxForTab(event.target);
|
||||||
|
+ });
|
||||||
|
+ gDevTools.showToolboxForTab(window.gBrowser.selectedTab).catch(() => {});
|
||||||
|
+ },
|
||||||
|
+
|
||||||
|
removeDevToolsMenus(window) {
|
||||||
|
// This will hide the "Tools > Web Developer" menu.
|
||||||
|
window.document.getElementById("webDeveloperMenu").hidden = true;
|
||||||
|
@@ -1243,6 +1257,7 @@ DevToolsStartup.prototype = {
|
||||||
|
" Enables debugging (some) application startup code paths.\n" +
|
||||||
|
" Only has an effect when `--jsdebugger` is also supplied.\n" +
|
||||||
|
" --devtools Open DevTools on initial load.\n" +
|
||||||
|
+ " --auto-open-devtools-for-tabs Open DevTools on new Tabs.\n" +
|
||||||
|
" --start-debugger-server [ws:][ <port> | <path> ] Start the devtools server on\n" +
|
||||||
|
" a TCP port or Unix domain socket path. Defaults to TCP port\n" +
|
||||||
|
" 6000. Use WebSocket protocol if ws: prefix is specified.\n",
|
||||||
diff --git a/docshell/base/BrowsingContext.cpp b/docshell/base/BrowsingContext.cpp
|
diff --git a/docshell/base/BrowsingContext.cpp b/docshell/base/BrowsingContext.cpp
|
||||||
index 0093288d1a448afe7bd8e5b6e8c0cb31835ba3f5..93908f5719f2cb0fe2f58d7f3153a9af0e71f08b 100644
|
index 0093288d1a448afe7bd8e5b6e8c0cb31835ba3f5..93908f5719f2cb0fe2f58d7f3153a9af0e71f08b 100644
|
||||||
--- a/docshell/base/BrowsingContext.cpp
|
--- a/docshell/base/BrowsingContext.cpp
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
1275
|
1276
|
||||||
Changed: yurys@chromium.org Thu Jul 8 13:25:54 MSK 2021
|
Changed: max@schmitt.mx Tue Jul 13 13:50:07 UTC 2021
|
||||||
|
|
|
||||||
|
|
@ -171,6 +171,67 @@ index 040c7b124dec6bb254563bbe74fe50012cb077a3..b4e6b8132786af70e8ad0dce88b67c28
|
||||||
|
|
||||||
const transportProvider = {
|
const transportProvider = {
|
||||||
setListener(upgradeListener) {
|
setListener(upgradeListener) {
|
||||||
|
diff --git a/devtools/startup/DevToolsStartup.jsm b/devtools/startup/DevToolsStartup.jsm
|
||||||
|
index e583547c071167d1072d2022ceec506e87647e50..138c28f76ffe9796b858796b54739e9a97822952 100644
|
||||||
|
--- a/devtools/startup/DevToolsStartup.jsm
|
||||||
|
+++ b/devtools/startup/DevToolsStartup.jsm
|
||||||
|
@@ -375,7 +375,7 @@ DevToolsStartup.prototype = {
|
||||||
|
|
||||||
|
// Store devtoolsFlag to check it later in onWindowReady.
|
||||||
|
this.devtoolsFlag = flags.devtools;
|
||||||
|
-
|
||||||
|
+ this.autoOpenDevtoolsForTabs = flags.autoOpenDevtoolsForTabs;
|
||||||
|
/* eslint-disable mozilla/balanced-observers */
|
||||||
|
// We are not expecting to remove those listeners until Firefox closes.
|
||||||
|
|
||||||
|
@@ -438,6 +438,7 @@ DevToolsStartup.prototype = {
|
||||||
|
|
||||||
|
const console = cmdLine.handleFlag("jsconsole", false);
|
||||||
|
const devtools = cmdLine.handleFlag("devtools", false);
|
||||||
|
+ const autoOpenDevtoolsForTabs = cmdLine.handleFlag("auto-open-devtools-for-tabs", false);
|
||||||
|
|
||||||
|
let devToolsServer;
|
||||||
|
try {
|
||||||
|
@@ -460,7 +461,7 @@ DevToolsStartup.prototype = {
|
||||||
|
debuggerFlag = cmdLine.handleFlag("jsdebugger", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
- return { console, debugger: debuggerFlag, devtools, devToolsServer };
|
||||||
|
+ return { console, debugger: debuggerFlag, devtools, autoOpenDevtoolsForTabs, devToolsServer };
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -482,9 +483,22 @@ DevToolsStartup.prototype = {
|
||||||
|
this._firstWindowReadyReceived = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (this.autoOpenDevtoolsForTabs) {
|
||||||
|
+ this.handleDevToolsOpenForEveryTab(window);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
JsonView.initialize();
|
||||||
|
},
|
||||||
|
|
||||||
|
+ handleDevToolsOpenForEveryTab(window) {
|
||||||
|
+ const require = this.initDevTools("CommandLine");
|
||||||
|
+ const { gDevTools } = require("devtools/client/framework/devtools");
|
||||||
|
+ window.gBrowser.tabContainer.addEventListener('TabOpen', async (event) => {
|
||||||
|
+ await gDevTools.showToolboxForTab(event.target);
|
||||||
|
+ });
|
||||||
|
+ gDevTools.showToolboxForTab(window.gBrowser.selectedTab).catch(() => {});
|
||||||
|
+ },
|
||||||
|
+
|
||||||
|
removeDevToolsMenus(window) {
|
||||||
|
// This will hide the "Tools > Web Developer" menu.
|
||||||
|
window.document.getElementById("webDeveloperMenu").hidden = true;
|
||||||
|
@@ -1250,6 +1264,7 @@ DevToolsStartup.prototype = {
|
||||||
|
" Enables debugging (some) application startup code paths.\n" +
|
||||||
|
" Only has an effect when `--jsdebugger` is also supplied.\n" +
|
||||||
|
" --devtools Open DevTools on initial load.\n" +
|
||||||
|
+ " --auto-open-devtools-for-tabs Open DevTools on new Tabs.\n" +
|
||||||
|
" --start-debugger-server [ws:][ <port> | <path> ] Start the devtools server on\n" +
|
||||||
|
" a TCP port or Unix domain socket path. Defaults to TCP port\n" +
|
||||||
|
" 6000. Use WebSocket protocol if ws: prefix is specified.\n",
|
||||||
diff --git a/docshell/base/BrowsingContext.cpp b/docshell/base/BrowsingContext.cpp
|
diff --git a/docshell/base/BrowsingContext.cpp b/docshell/base/BrowsingContext.cpp
|
||||||
index f3292d8ae6da1865847ded8b1c79a80ba8fca70e..70a0aacfe2439bb8180f2f069f9e0db7059265ce 100644
|
index f3292d8ae6da1865847ded8b1c79a80ba8fca70e..70a0aacfe2439bb8180f2f069f9e0db7059265ce 100644
|
||||||
--- a/docshell/base/BrowsingContext.cpp
|
--- a/docshell/base/BrowsingContext.cpp
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue