Bug 1317697: Fix handling of more canceled responses. r?mixedpuppy
MozReview-Commit-ID: Axy06zeyPaa
--- 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 = {