Bug 1389855: Remove lazy imports from MessageChannel.jsm. r?zombie draft
authorKris Maglione <maglione.k@gmail.com>
Sat, 12 Aug 2017 16:31:08 -0700
changeset 645476 1f74582f10f560aaf44c703e750b38af23141a0e
parent 645475 363309f141e4f43990b38bc50895c3b4868bce4d
child 645477 4e9802fed14fa13d538870d1b630136b36f14d72
push id73761
push usermaglione.k@gmail.com
push dateSat, 12 Aug 2017 23:31:33 +0000
reviewerszombie
bugs1389855
milestone57.0a1
Bug 1389855: Remove lazy imports from MessageChannel.jsm. r?zombie MozReview-Commit-ID: A1d5WdrMB3K
toolkit/components/extensions/MessageChannel.jsm
--- a/toolkit/components/extensions/MessageChannel.jsm
+++ b/toolkit/components/extensions/MessageChannel.jsm
@@ -100,26 +100,22 @@ this.EXPORTED_SYMBOLS = ["MessageChannel
 
 /* globals MessageChannel */
 
 const Ci = Components.interfaces;
 const Cc = Components.classes;
 const Cu = Components.utils;
 const Cr = Components.results;
 
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+Cu.import("resource://gre/modules/ExtensionUtils.jsm");
 Cu.import("resource://gre/modules/Services.jsm");
 
-XPCOMUtils.defineLazyModuleGetter(this, "ExtensionUtils",
-                                  "resource://gre/modules/ExtensionUtils.jsm");
-XPCOMUtils.defineLazyModuleGetter(this, "PromiseUtils",
-                                  "resource://gre/modules/PromiseUtils.jsm");
-
-XPCOMUtils.defineLazyGetter(this, "MessageManagerProxy",
-                            () => ExtensionUtils.MessageManagerProxy);
+const {
+  MessageManagerProxy,
+} = ExtensionUtils;
 
 /**
  * Handles the mapping and dispatching of messages to their registered
  * handlers. There is one broker per message manager and class of
  * messages. Each class of messages is mapped to one native message
  * name, e.g., "MessageChannel:Message", and is dispatched to handlers
  * based on an internal message name, e.g., "Extension:ExecuteScript".
  */
@@ -533,17 +529,21 @@ this.MessageChannel = {
       } catch (e) {
         // Caller is not expecting a reply, so dump the error to the console.
         Cu.reportError(e);
         return Promise.reject(e);
       }
       return Promise.resolve();  // Not expecting any reply.
     }
 
-    let deferred = PromiseUtils.defer();
+    let deferred = {};
+    deferred.promise = new Promise((resolve, reject) => {
+      deferred.resolve = resolve;
+      deferred.reject = reject;
+    });
     deferred.sender = recipient;
     deferred.messageManager = target;
     deferred.channelId = channelId;
 
     this._addPendingResponse(deferred);
 
     // The channel ID is used as the message name when routing responses.
     // Add a message listener to the response broker, and remove it once