Serialize notification updates

// FREEBIE
This commit is contained in:
lilia 2015-12-01 13:52:38 -08:00
parent d0b1aa3829
commit 999e084727

View file

@ -180,9 +180,14 @@
} }
}; };
var notification_pending = Promise.resolve();
extension.notification = { extension.notification = {
clear: function() { clear: function() {
chrome.notifications.clear('signal'); notification_pending = notification_pending.then(function() {
return new Promise(function(resolve) {
chrome.notifications.clear('signal', resolve);
});
});
}, },
update: function(options) { update: function(options) {
if (chrome) { if (chrome) {
@ -195,10 +200,16 @@
items : options.items, items : options.items,
buttons : options.buttons buttons : options.buttons
}; };
chrome.notifications.update('signal', chromeOpts, function(wasUpdated) { notification_pending = notification_pending.then(function() {
if (!wasUpdated) { return new Promise(function(resolve) {
chrome.notifications.create('signal', chromeOpts); chrome.notifications.update('signal', chromeOpts, function(wasUpdated) {
} if (!wasUpdated) {
chrome.notifications.create('signal', chromeOpts, resolve);
} else {
resolve();
}
});
});
}); });
} else { } else {
var notification = new Notification(options.title, { var notification = new Notification(options.title, {