Bug 1317697: Fix handling of more canceled responses. r?mixedpuppy draft
authorKris Maglione <maglione.k@gmail.com>
Thu, 06 Apr 2017 20:11:54 -0700
changeset 562397 8bda426f56d6d38385c2850cf5aaa9eb8212acb1
parent 562396 03f48308d2fc9c0575a9c15e046639c1c27a1f5f
child 562398 62cb91d550190bee62b7452f84bfe1c6e6fd3bd0
push id54021
push usermaglione.k@gmail.com
push dateThu, 13 Apr 2017 22:30:15 +0000
reviewersmixedpuppy
bugs1317697
milestone55.0a1
Bug 1317697: Fix handling of more canceled responses. r?mixedpuppy MozReview-Commit-ID: Axy06zeyPaa
toolkit/components/extensions/MessageChannel.jsm
--- a/toolkit/components/extensions/MessageChannel.jsm
+++ b/toolkit/components/extensions/MessageChannel.jsm
@@ -530,16 +530,17 @@ this.MessageChannel = {
         return Promise.reject(e);
       }
       return Promise.resolve();  // Not expecting any reply.
     }
 
     let deferred = PromiseUtils.defer();
     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
     // we've gotten (or canceled) a response.
     let broker = this.responseManagers.get(target);
     broker.addHandler(channelId, deferred);
@@ -631,16 +632,17 @@ this.MessageChannel = {
       return;
     }
 
     let target = new MessageManagerProxy(data.target);
 
     let deferred = {
       sender: data.sender,
       messageManager: target,
+      channelId: data.channelId,
     };
     deferred.promise = new Promise((resolve, reject) => {
       deferred.reject = reject;
 
       this._callHandlers(handlers, data).then(resolve, reject);
     }).then(
       value => {
         let response = {