Bug 1345583 - Move code for startup and shutdown handling of preferences to ExtensionPreferencesManager, r?aswan draft
authorBob Silverberg <bsilverberg@mozilla.com>
Wed, 08 Mar 2017 14:47:26 -0500
changeset 495898 dd4a814f344473ac1e2d43cdb3dd4aacc634eddf
parent 495323 800ba54a4bd52628833c4db005ddd182586666c4
child 495912 c2a31f5211dfba3003c31827720f70e9466f2994
push id48464
push userbmo:bob.silverberg@gmail.com
push dateThu, 09 Mar 2017 13:38:09 +0000
reviewersaswan
bugs1345583
milestone55.0a1
Bug 1345583 - Move code for startup and shutdown handling of preferences to ExtensionPreferencesManager, r?aswan MozReview-Commit-ID: 8EILFeFjvnd
toolkit/components/extensions/ExtensionPreferencesManager.jsm
toolkit/components/extensions/ext-privacy.js
--- a/toolkit/components/extensions/ExtensionPreferencesManager.jsm
+++ b/toolkit/components/extensions/ExtensionPreferencesManager.jsm
@@ -17,28 +17,51 @@
  *              values that correspond to the prefs to be set.
  */
 
 "use strict";
 
 this.EXPORTED_SYMBOLS = ["ExtensionPreferencesManager"];
 
 const {classes: Cc, interfaces: Ci, utils: Cu, results: Cr} = Components;
+const {Management} = Cu.import("resource://gre/modules/Extension.jsm", {});
 
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "ExtensionSettingsStore",
                                   "resource://gre/modules/ExtensionSettingsStore.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "Preferences",
                                   "resource://gre/modules/Preferences.jsm");
 
 XPCOMUtils.defineLazyGetter(this, "defaultPreferences", function() {
   return new Preferences({defaultBranch: true});
 });
 
+/* eslint-disable mozilla/balanced-listeners */
+Management.on("shutdown", (type, extension) => {
+  switch (extension.shutdownReason) {
+    case "ADDON_DISABLE":
+    case "ADDON_DOWNGRADE":
+    case "ADDON_UPGRADE":
+      this.ExtensionPreferencesManager.disableAll(extension);
+      break;
+
+    case "ADDON_UNINSTALL":
+      this.ExtensionPreferencesManager.removeAll(extension);
+      break;
+  }
+});
+
+Management.on("startup", (type, extension) => {
+  if (["ADDON_ENABLE", "ADDON_UPGRADE", "ADDON_DOWNGRADE"].includes(extension.startupReason)) {
+    this.ExtensionPreferencesManager.enableAll(extension);
+  }
+});
+/* eslint-enable mozilla/balanced-listeners */
+
 const STORE_TYPE = "prefs";
 
 // Definitions of settings, each of which correspond to a different API.
 let settingsMap = new Map();
 
 /**
  * This function is passed into the ExtensionSettingsStore to determine the
  * initial value of the setting. It reads an array of preference names from
--- a/toolkit/components/extensions/ext-privacy.js
+++ b/toolkit/components/extensions/ext-privacy.js
@@ -8,38 +8,16 @@ XPCOMUtils.defineLazyModuleGetter(this, 
                                   "resource://gre/modules/Preferences.jsm");
 
 Cu.import("resource://gre/modules/ExtensionPreferencesManager.jsm");
 Cu.import("resource://gre/modules/ExtensionUtils.jsm");
 const {
   ExtensionError,
 } = ExtensionUtils;
 
-/* eslint-disable mozilla/balanced-listeners */
-extensions.on("startup", async (type, extension) => {
-  if (["ADDON_ENABLE", "ADDON_UPGRADE", "ADDON_DOWNGRADE"].includes(extension.startupReason)) {
-    await ExtensionPreferencesManager.enableAll(extension);
-  }
-});
-
-extensions.on("shutdown", async (type, extension) => {
-  switch (extension.shutdownReason) {
-    case "ADDON_DISABLE":
-    case "ADDON_DOWNGRADE":
-    case "ADDON_UPGRADE":
-      await ExtensionPreferencesManager.disableAll(extension);
-      break;
-
-    case "ADDON_UNINSTALL":
-      await ExtensionPreferencesManager.removeAll(extension);
-      break;
-  }
-});
-/* eslint-enable mozilla/balanced-listeners */
-
 function checkScope(scope) {
   if (scope && scope !== "regular") {
     throw new ExtensionError(
       `Firefox does not support the ${scope} settings scope.`);
   }
 }
 
 function getAPI(extension, name, callback) {