Bug 1440670 - Make the timeout before showing the connection status in the Browser Toolbox longer and hide it whenever the connection is established. r?jryans
MozReview-Commit-ID: BeH95CstC5I
--- a/devtools/client/framework/toolbox-process-window.js
+++ b/devtools/client/framework/toolbox-process-window.js
@@ -12,17 +12,20 @@ loader.require("devtools/client/framewor
var { gDevTools } = require("devtools/client/framework/devtools");
var { TargetFactory } = require("devtools/client/framework/target");
var { Toolbox } = require("devtools/client/framework/toolbox");
var Services = require("Services");
var { DebuggerClient } = require("devtools/shared/client/debugger-client");
var { PrefsHelper } = require("devtools/client/shared/prefs");
-const STATUS_REVEAL_TIME = 5000;
+// Timeout to wait before we assume that a connect() timed out without an error.
+// In milliseconds. (With the Debugger pane open, this has been reported to last
+// more than 10 seconds!)
+const STATUS_REVEAL_TIME = 15000;
/**
* Shortcuts for accessing various debugger preferences.
*/
var Prefs = new PrefsHelper("devtools.debugger", {
chromeDebuggingHost: ["Char", "chrome-debugging-host"],
chromeDebuggingWebSocket: ["Bool", "chrome-debugging-websocket"],
});
@@ -32,19 +35,27 @@ var gToolbox, gClient;
function appendStatusMessage(msg) {
let statusMessage = document.getElementById("status-message");
statusMessage.value += msg + "\n";
if (msg.stack) {
statusMessage.value += msg.stack + "\n";
}
}
-function revealStatusMessage() {
+function toggleStatusMessage(visible = true) {
let statusMessageContainer = document.getElementById("status-message-container");
- statusMessageContainer.hidden = false;
+ statusMessageContainer.hidden = !visible;
+}
+
+function revealStatusMessage() {
+ toggleStatusMessage(true);
+}
+
+function hideStatusMessage() {
+ toggleStatusMessage(false);
}
var connect = async function () {
// Initiate the connection
let env = Components.classes["@mozilla.org/process/environment;1"]
.getService(Components.interfaces.nsIEnvironment);
let port = env.get("MOZ_BROWSER_TOOLBOX_PORT");
let addonID = env.get("MOZ_BROWSER_TOOLBOX_ADDONID");
@@ -94,24 +105,24 @@ function setPrefDefaults() {
Services.prefs.setBoolPref("devtools.webconsole.new-frontend-enabled", false);
Services.prefs.setBoolPref("devtools.preference.new-panel-enabled", false);
Services.prefs.setBoolPref("layout.css.emulate-moz-box-with-flex", false);
}
window.addEventListener("load", async function () {
let cmdClose = document.getElementById("toolbox-cmd-close");
cmdClose.addEventListener("command", onCloseCommand);
setPrefDefaults();
- // Reveal status message if connecting is slow or if an error occurs
- let delayedStatusReveal = setTimeout(() => {
- revealStatusMessage();
- }, STATUS_REVEAL_TIME);
+ // Reveal status message if connecting is slow or if an error occurs.
+ let delayedStatusReveal = setTimeout(revealStatusMessage, STATUS_REVEAL_TIME);
try {
await connect();
clearTimeout(delayedStatusReveal);
+ hideStatusMessage();
} catch (e) {
+ clearTimeout(delayedStatusReveal);
appendStatusMessage(e);
revealStatusMessage();
console.error(e);
}
}, { once: true });
function onCloseCommand(event) {
window.close();