Bug 1407426 - return the toolbox created when opening BrowserContentToolbox;r=jlast draft
authorJulian Descottes <jdescottes@mozilla.com>
Tue, 10 Oct 2017 23:21:20 +0200
changeset 680784 50d135beac736720aebce587d69ea59281152db4
parent 680783 ae1f637c955d04703ea67975f658054c88809f9c
child 680785 e95c35b0d23a8eb569f89c8e223c71a506030efb
child 680832 41df3e98ee7c153aa69313ad557717a55abbb0b4
push id84621
push userjdescottes@mozilla.com
push dateMon, 16 Oct 2017 09:42:56 +0000
reviewersjlast
bugs1407426
milestone58.0a1
Bug 1407426 - return the toolbox created when opening BrowserContentToolbox;r=jlast We need to retrieve the toolbox object created in openContentProcessToolbox in order to use it in tests; MozReview-Commit-ID: BC8bWaiYAnS
devtools/client/framework/devtools-browser.js
--- a/devtools/client/framework/devtools-browser.js
+++ b/devtools/client/framework/devtools-browser.js
@@ -358,40 +358,47 @@ var gDevToolsBrowser = exports.gDevTools
               });
               deferred.resolve(target);
             });
     });
 
     return deferred.promise;
   },
 
-   // Used by menus.js
+  /**
+   * Open the Browser Content Toolbox for the provided gBrowser instance.
+   * Returns a promise that resolves with a toolbox instance. If no content process is
+   * available, the promise will be rejected and a message will be displayed to the user.
+   *
+   * Used by menus.js
+  */
   openContentProcessToolbox(gBrowser) {
     let { childCount } = Services.ppmm;
     // Get the process message manager for the current tab
     let mm = gBrowser.selectedBrowser.messageManager.processMessageManager;
     let processId = null;
     for (let i = 1; i < childCount; i++) {
       let child = Services.ppmm.getChildAt(i);
       if (child == mm) {
         processId = i;
         break;
       }
     }
     if (processId) {
-      this._getContentProcessTarget(processId)
+      return this._getContentProcessTarget(processId)
           .then(target => {
             // Display a new toolbox, in a new window, with debugger by default
             return gDevTools.showToolbox(target, "jsdebugger",
                                          Toolbox.HostType.WINDOW);
           });
-    } else {
-      let msg = L10N.getStr("toolbox.noContentProcessForTab.message");
-      Services.prompt.alert(null, "", msg);
     }
+
+    let msg = L10N.getStr("toolbox.noContentProcessForTab.message");
+    Services.prompt.alert(null, "", msg);
+    return Promise.reject(msg);
   },
 
   /**
    * Install WebIDE widget
    */
   // Used by itself
   installWebIDEWidget() {
     if (this.isWebIDEWidgetInstalled()) {