[tbb-commits] [tor-browser/tor-browser-60.7.0esr-9.0-1] Bug 1560192 - Clean up prompt open calls in Prompter.jsm. r=Gijs, a=pascalc

gk at torproject.org gk at torproject.org
Thu Jun 20 18:23:31 UTC 2019


commit b512c194bccfab64c3d27065b4d2e535f53ba979
Author: Johann Hofmann <jhofmann at mozilla.com>
Date:   Wed Jun 19 21:59:18 2019 +0000

    Bug 1560192 - Clean up prompt open calls in Prompter.jsm. r=Gijs, a=pascalc
    
    Differential Revision: https://phabricator.services.mozilla.com/D35371
    
    --HG--
    extra : source : bfd88bfc61c42a09475da8749b2218f540e4592c
---
 browser/modules/RemotePrompt.jsm             | 14 +++++++++-----
 toolkit/components/prompts/src/nsPrompter.js | 18 +++++++++---------
 2 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/browser/modules/RemotePrompt.jsm b/browser/modules/RemotePrompt.jsm
index 45755c2446fc..f94052410d5c 100644
--- a/browser/modules/RemotePrompt.jsm
+++ b/browser/modules/RemotePrompt.jsm
@@ -23,10 +23,14 @@ var RemotePrompt = {
   receiveMessage(message) {
     switch (message.name) {
       case "Prompt:Open":
-        if (message.data.uri) {
-          this.openModalWindow(message.data, message.target);
-        } else {
+        const COMMON_DIALOG = "chrome://global/content/commonDialog.xul";
+        const SELECT_DIALOG = "chrome://global/content/selectDialog.xul";
+
+        if (message.data.tabPrompt) {
           this.openTabPrompt(message.data, message.target);
+        } else {
+          let uri = (message.data.promptType == "select") ? SELECT_DIALOG : COMMON_DIALOG;
+          this.openModalWindow(uri, message.data, message.target);
         }
         break;
     }
@@ -90,13 +94,13 @@ var RemotePrompt = {
     }
   },
 
-  openModalWindow(args, browser) {
+  openModalWindow(uri, args, browser) {
     let window = browser.ownerGlobal;
     try {
       PromptUtils.fireDialogEvent(window, "DOMWillOpenModalDialog", browser);
       let bag = PromptUtils.objectToPropBag(args);
 
-      Services.ww.openWindow(window, args.uri, "_blank",
+      Services.ww.openWindow(window, uri, "_blank",
                              "centerscreen,chrome,modal,titlebar", bag);
 
       PromptUtils.propBagToObject(bag, args);
diff --git a/toolkit/components/prompts/src/nsPrompter.js b/toolkit/components/prompts/src/nsPrompter.js
index bf76cd8b2078..77a65b25b100 100644
--- a/toolkit/components/prompts/src/nsPrompter.js
+++ b/toolkit/components/prompts/src/nsPrompter.js
@@ -430,7 +430,7 @@ function openTabPrompt(domWin, tabPrompt, args) {
     }
 }
 
-function openRemotePrompt(domWin, args, tabPrompt) {
+function openRemotePrompt(domWin, args) {
     let docShell = domWin.QueryInterface(Ci.nsIInterfaceRequestor)
                          .getInterface(Ci.nsIDocShell);
     let messageManager = docShell.QueryInterface(Ci.nsIInterfaceRequestor)
@@ -438,7 +438,7 @@ function openRemotePrompt(domWin, args, tabPrompt) {
                                  .messageManager;
 
     let inPermitUnload = docShell.contentViewer && docShell.contentViewer.inPermitUnload;
-    let eventDetail = Cu.cloneInto({tabPrompt, inPermitUnload}, domWin);
+    let eventDetail = Cu.cloneInto({tabPrompt: args.tabPrompt, inPermitUnload}, domWin);
     PromptUtils.fireDialogEvent(domWin, "DOMWillOpenModalDialog", null, eventDetail);
 
     let winUtils = domWin.QueryInterface(Ci.nsIInterfaceRequestor)
@@ -536,7 +536,8 @@ ModalPrompter.prototype = {
 
         if (allowTabModal && this.domWin) {
             if (Services.appinfo.processType == Services.appinfo.PROCESS_TYPE_CONTENT) {
-                openRemotePrompt(this.domWin, args, true);
+                args.tabPrompt = true;
+                openRemotePrompt(this.domWin, args);
                 return;
             }
 
@@ -548,17 +549,16 @@ ModalPrompter.prototype = {
         }
 
         // If we can't do a tab modal prompt, fallback to using a window-modal dialog.
-        const COMMON_DIALOG = "chrome://global/content/commonDialog.xul";
-        const SELECT_DIALOG = "chrome://global/content/selectDialog.xul";
-
-        let uri = (args.promptType == "select") ? SELECT_DIALOG : COMMON_DIALOG;
-
         if (Services.appinfo.processType === Services.appinfo.PROCESS_TYPE_CONTENT) {
-            args.uri = uri;
+            args.tabPrompt = false;
             openRemotePrompt(this.domWin, args);
             return;
         }
 
+        const COMMON_DIALOG = "chrome://global/content/commonDialog.xul";
+        const SELECT_DIALOG = "chrome://global/content/selectDialog.xul";
+
+        let uri = (args.promptType == "select") ? SELECT_DIALOG : COMMON_DIALOG;
         let propBag = PromptUtils.objectToPropBag(args);
         openModalWindow(this.domWin, uri, propBag);
         PromptUtils.propBagToObject(propBag, args);



More information about the tbb-commits mailing list