Bug 1252604 - Change logic in alarms observer to return immediately if the alarm has been cancelled, r?kmag draft
authorbsilverberg <bsilverberg@mozilla.com>
Wed, 16 Mar 2016 16:01:12 +0100
changeset 341090 a77432f662c88b0e2a3621bff282db3ddc949eba
parent 340547 3d2235db2ebe87a767f9e30ab33cc456273075ce
child 516330 90aa73bb14f1444cc560299185899173a9c6ea2e
push id13137
push userbmo:bob.silverberg@gmail.com
push dateWed, 16 Mar 2016 15:02:57 +0000
reviewerskmag
bugs1252604
milestone48.0a1
Bug 1252604 - Change logic in alarms observer to return immediately if the alarm has been cancelled, r?kmag MozReview-Commit-ID: LahP6ESDTGd
toolkit/components/extensions/ext-alarms.js
--- a/toolkit/components/extensions/ext-alarms.js
+++ b/toolkit/components/extensions/ext-alarms.js
@@ -44,22 +44,23 @@ function Alarm(extension, name, alarmInf
 Alarm.prototype = {
   clear() {
     this.timer.cancel();
     alarmsMap.get(this.extension).delete(this.name);
     this.canceled = true;
   },
 
   observe(subject, topic, data) {
+    if (this.canceled) {
+      return;
+    }
+
     for (let callback of alarmCallbacksMap.get(this.extension)) {
       callback(this);
     }
-    if (this.canceled) {
-      return;
-    }
 
     if (!this.periodInMinutes) {
       this.clear();
       return;
     }
 
     let delay = this.periodInMinutes * 60 * 1000;
     this.scheduledTime = Date.now() + delay;