mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-16 06:45:42 +00:00
Bug 1171261 - Only track pending channel registrations. r=dragana
This commit is contained in:
parent
31a5ab9f9d
commit
d8338f8319
@ -803,8 +803,11 @@ this.PushService = {
|
||||
|
||||
return this._db.put(aRecord)
|
||||
.then(_ => aRecord, error => {
|
||||
// Unable to save.
|
||||
this._sendRequest("unregister", aRecord);
|
||||
// Unable to save. Destroy the subscription in the background.
|
||||
this._sendRequest("unregister", aRecord).catch(err => {
|
||||
debug("_onRegisterSuccess: Error unregistering stale subscription" +
|
||||
err);
|
||||
});
|
||||
throw error;
|
||||
});
|
||||
},
|
||||
@ -879,7 +882,7 @@ this.PushService = {
|
||||
* not.
|
||||
*/
|
||||
_unregister: function(aPageRecord) {
|
||||
debug("unregisterWithServer()");
|
||||
debug("_unregister()");
|
||||
|
||||
if (!aPageRecord.scope) {
|
||||
return Promise.reject({state: 0, error: "NotFoundError"});
|
||||
|
@ -951,24 +951,22 @@ this.PushServiceWebSocket = {
|
||||
}
|
||||
|
||||
if (action == "register") {
|
||||
record.channelID = this._generateID();
|
||||
}
|
||||
var data = {channelID: record.channelID,
|
||||
messageType: action};
|
||||
let data = {channelID: this._generateID(),
|
||||
messageType: action};
|
||||
|
||||
var p = new Promise((resolve, reject) => {
|
||||
this._pendingRequests[data.channelID] = {record: record,
|
||||
resolve: resolve,
|
||||
reject: reject,
|
||||
ctime: Date.now()
|
||||
};
|
||||
this._queueRequest(data);
|
||||
});
|
||||
if (action == "unregister") {
|
||||
return Promise.resolve();
|
||||
} else {
|
||||
return p;
|
||||
return new Promise((resolve, reject) => {
|
||||
this._pendingRequests[data.channelID] = {record: record,
|
||||
resolve: resolve,
|
||||
reject: reject,
|
||||
ctime: Date.now()
|
||||
};
|
||||
this._queueRequest(data);
|
||||
});
|
||||
}
|
||||
|
||||
this._queueRequest({channelID: record.channelID,
|
||||
messageType: action});
|
||||
return Promise.resolve();
|
||||
},
|
||||
|
||||
_queueStart: Promise.resolve(),
|
||||
@ -986,13 +984,11 @@ this.PushServiceWebSocket = {
|
||||
|
||||
_send(data) {
|
||||
if (this._currentState == STATE_READY) {
|
||||
if (data.messageType == "ack") {
|
||||
if (data.messageType != "register" ||
|
||||
typeof this._pendingRequests[data.channelID] == "object") {
|
||||
|
||||
// check if request has not been cancelled
|
||||
this._wsSendMessage(data);
|
||||
} else {
|
||||
// check if request has not been canelled
|
||||
if (typeof this._pendingRequests[data.channelID] == "object") {
|
||||
this._wsSendMessage(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user