Bug 1341722 - Enable themes by default now that all of its blockers have landed r?mikedeboer draft
authorMatthew Wein <mwein@mozilla.com>
Mon, 24 Apr 2017 19:13:17 -0400
changeset 567379 38bc88c089965b2745a0e287e497b1f34591e6e0
parent 566524 ff6abe20041933a67f636b748ed698e9616a6833
child 625633 fd0e42dbaec79bbcceea5648d21a9fee897b714b
push id55557
push usermwein@mozilla.com
push dateMon, 24 Apr 2017 23:13:58 +0000
reviewersmikedeboer
bugs1341722
milestone55.0a1
Bug 1341722 - Enable themes by default now that all of its blockers have landed r?mikedeboer MozReview-Commit-ID: ZAAXByZcj6
browser/components/extensions/test/browser/browser_ext_themes_icons.js
browser/components/extensions/test/browser/browser_ext_themes_validation.js
modules/libpref/init/all.js
toolkit/components/extensions/ext-theme.js
toolkit/components/extensions/test/browser/browser_ext_themes_chromeparity.js
toolkit/components/extensions/test/browser/browser_ext_themes_dynamic_updates.js
toolkit/components/extensions/test/browser/browser_ext_themes_lwtsupport.js
toolkit/components/extensions/test/browser/browser_ext_themes_multiple_backgrounds.js
toolkit/components/extensions/test/browser/browser_ext_themes_persistence.js
--- a/browser/components/extensions/test/browser/browser_ext_themes_icons.js
+++ b/browser/components/extensions/test/browser/browser_ext_themes_icons.js
@@ -180,18 +180,17 @@ function* runTestWithIcons(icons) {
   for (let button of ICON_INFO) {
     verifyButtonWithoutCustomStyling(button[1],
       `The ${button[1]} should not have it's icon customized when the theme is unloaded`);
   }
 }
 
 add_task(function* setup() {
   yield SpecialPowers.pushPrefEnv({
-    set: [["extensions.webextensions.themes.enabled", true],
-          ["extensions.webextensions.themes.icons.enabled", true]],
+    set: [["extensions.webextensions.themes.icons.enabled", true]],
   });
 });
 
 add_task(function* test_all_icons() {
   let icons = [
     ["back", "fox.svg"],
     ["forward", "fox.svg"],
     ["reload", "fox.svg"],
--- a/browser/components/extensions/test/browser/browser_ext_themes_validation.js
+++ b/browser/components/extensions/test/browser/browser_ext_themes_validation.js
@@ -1,16 +1,10 @@
 "use strict";
 
-add_task(function* setup() {
-  yield SpecialPowers.pushPrefEnv({
-    set: [["extensions.webextensions.themes.enabled", true]],
-  });
-});
-
 /**
  * Helper function for testing a theme with invalid properties.
  * @param {object} invalidProps The invalid properties to load the theme with.
  */
 function* testThemeWithInvalidProperties(invalidProps) {
   let manifest = {
     "theme": {},
   };
--- a/modules/libpref/init/all.js
+++ b/modules/libpref/init/all.js
@@ -4788,18 +4788,16 @@ pref("extensions.minCompatiblePlatformVe
 pref("extensions.webExtensionsMinPlatformVersion", "42.0a1");
 pref("extensions.allow-non-mpc-extensions", true);
 
 // Other webextensions prefs
 pref("extensions.webextensions.keepStorageOnUninstall", false);
 pref("extensions.webextensions.keepUuidOnUninstall", false);
 // Redirect basedomain used by identity api
 pref("extensions.webextensions.identity.redirectDomain", "extensions.allizom.org");
-// Whether or not webextension themes are supported.
-pref("extensions.webextensions.themes.enabled", false);
 pref("extensions.webextensions.themes.icons.enabled", false);
 pref("extensions.webextensions.remote", false);
 
 // Report Site Issue button
 pref("extensions.webcompat-reporter.newIssueEndpoint", "https://webcompat.com/issues/new");
 #ifdef NIGHTLY_BUILD
 pref("extensions.webcompat-reporter.enabled", true);
 #else
--- a/toolkit/components/extensions/ext-theme.js
+++ b/toolkit/components/extensions/ext-theme.js
@@ -2,20 +2,16 @@
 
 Cu.import("resource://gre/modules/Services.jsm");
 
 XPCOMUtils.defineLazyModuleGetter(this, "Preferences",
                                   "resource://gre/modules/Preferences.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "LightweightThemeManager",
                                   "resource://gre/modules/LightweightThemeManager.jsm");
 
-XPCOMUtils.defineLazyGetter(this, "gThemesEnabled", () => {
-  return Preferences.get("extensions.webextensions.themes.enabled");
-});
-
 const ICONS = Preferences.get("extensions.webextensions.themes.icons.buttons", "").split(",");
 
 /** Class representing a theme. */
 class Theme {
   /**
    * Creates a theme instance.
    *
    * @param {string} baseURI The base URI of the extension, used to
@@ -233,50 +229,35 @@ class Theme {
     Services.obs.notifyObservers(null,
       "lightweight-theme-styling-update",
       JSON.stringify(lwtStyles));
   }
 }
 
 this.theme = class extends ExtensionAPI {
   onManifestEntry(entryName) {
-    if (!gThemesEnabled) {
-      // Return early if themes are disabled.
-      return;
-    }
-
     let {extension} = this;
     let {manifest} = extension;
 
-    if (!gThemesEnabled) {
-      // Return early if themes are disabled.
-      return;
-    }
-
     this.theme = new Theme(extension.baseURI, extension.logger);
     this.theme.load(manifest.theme);
   }
 
   onShutdown() {
     if (this.theme) {
       this.theme.unload();
     }
   }
 
   getAPI(context) {
     let {extension} = context;
 
     return {
       theme: {
         update: (details) => {
-          if (!gThemesEnabled) {
-            // Return early if themes are disabled.
-            return;
-          }
-
           if (!this.theme) {
             // WebExtensions using the Theme API will not have a theme defined
             // in the manifest. Therefore, we need to initialize the theme the
             // first time browser.theme.update is called.
             this.theme = new Theme(extension.baseURI, extension.logger);
           }
 
           this.theme.load(details);
--- a/toolkit/components/extensions/test/browser/browser_ext_themes_chromeparity.js
+++ b/toolkit/components/extensions/test/browser/browser_ext_themes_chromeparity.js
@@ -1,16 +1,10 @@
 "use strict";
 
-add_task(function* setup() {
-  yield SpecialPowers.pushPrefEnv({
-    set: [["extensions.webextensions.themes.enabled", true]],
-  });
-});
-
 add_task(function* test_support_theme_frame() {
   const FRAME_COLOR = [71, 105, 91];
   const TAB_TEXT_COLOR = [207, 221, 192, .9];
   let extension = ExtensionTestUtils.loadExtension({
     manifest: {
       "theme": {
         "images": {
           "theme_frame": "face.png",
--- a/toolkit/components/extensions/test/browser/browser_ext_themes_dynamic_updates.js
+++ b/toolkit/components/extensions/test/browser/browser_ext_themes_dynamic_updates.js
@@ -25,22 +25,16 @@ function validateTheme(backgroundImage, 
 
   Assert.ok(style.backgroundImage.includes(backgroundImage), "Expected correct background image");
   Assert.equal(style.backgroundColor, "rgb(" + hexToRGB(accentColor).join(", ") + ")",
     "Expected correct accent color");
   Assert.equal(style.color, "rgb(" + hexToRGB(textColor).join(", ") + ")",
     "Expected correct text color");
 }
 
-add_task(function* setup() {
-  yield SpecialPowers.pushPrefEnv({
-    set: [["extensions.webextensions.themes.enabled", true]],
-  });
-});
-
 add_task(function* test_dynamic_theme_updates() {
   let extension = ExtensionTestUtils.loadExtension({
     manifest: {
       permissions: ["theme"],
     },
     files: {
       "image1.png": BACKGROUND_1,
       "image2.png": BACKGROUND_2,
--- a/toolkit/components/extensions/test/browser/browser_ext_themes_lwtsupport.js
+++ b/toolkit/components/extensions/test/browser/browser_ext_themes_lwtsupport.js
@@ -1,16 +1,10 @@
 "use strict";
 
-add_task(function* setup() {
-  yield SpecialPowers.pushPrefEnv({
-    set: [["extensions.webextensions.themes.enabled", true]],
-  });
-});
-
 add_task(function* test_support_LWT_properties() {
   let extension = ExtensionTestUtils.loadExtension({
     manifest: {
       "theme": {
         "images": {
           "headerURL": "image1.png",
         },
         "colors": {
--- a/toolkit/components/extensions/test/browser/browser_ext_themes_multiple_backgrounds.js
+++ b/toolkit/components/extensions/test/browser/browser_ext_themes_multiple_backgrounds.js
@@ -1,16 +1,10 @@
 "use strict";
 
-add_task(async function setup() {
-  await SpecialPowers.pushPrefEnv({
-    set: [["extensions.webextensions.themes.enabled", true]],
-  });
-});
-
 add_task(async function test_support_backgrounds_position() {
   let extension = ExtensionTestUtils.loadExtension({
     manifest: {
       "theme": {
         "images": {
           "headerURL": "face.png",
           "additional_backgrounds": ["face.png", "face.png", "face.png"],
         },
--- a/toolkit/components/extensions/test/browser/browser_ext_themes_persistence.js
+++ b/toolkit/components/extensions/test/browser/browser_ext_themes_persistence.js
@@ -1,19 +1,13 @@
 "use strict";
 
 // This test checks whether applied WebExtension themes are persisted and applied
 // on newly opened windows.
 
-add_task(function* setup() {
-  yield SpecialPowers.pushPrefEnv({
-    set: [["extensions.webextensions.themes.enabled", true]],
-  });
-});
-
 add_task(function* test_multiple_windows() {
   let extension = ExtensionTestUtils.loadExtension({
     manifest: {
       "theme": {
         "images": {
           "headerURL": "image1.png",
         },
         "colors": {