Bug 1441708 - theme_icons is applied incorrectly when frame is dark and toolbar is light draft
authorConnor Masini <cjmasini@gmail.com>
Fri, 20 Apr 2018 13:41:41 -0400
changeset 787672 1b6533ad0cd1069ab806b59b5604116375ccd485
parent 785843 badfc5cff942349a8e1eb722bdfe24a52bf2571b
push id107762
push userbmo:masinico@msu.edu
push dateWed, 25 Apr 2018 03:18:44 +0000
bugs1441708
milestone61.0a1
Bug 1441708 - theme_icons is applied incorrectly when frame is dark and toolbar is light MozReview-Commit-ID: 8dkpMNQfphq
browser/base/content/browser.css
browser/components/extensions/test/browser/browser-common.ini
browser/components/extensions/test/browser/browser_ext_themes_icon_brighttext.js
browser/components/tests/browser/browser.ini
--- a/browser/base/content/browser.css
+++ b/browser/base/content/browser.css
@@ -368,34 +368,34 @@ toolbarpaletteitem {
   width: 16px;
 }
 
 @media not all and (min-resolution: 1.1dppx) {
   .webextension-browser-action {
     list-style-image: var(--webextension-toolbar-image, inherit);
   }
 
-  .webextension-browser-action:-moz-lwtheme-brighttext {
+  toolbar[brighttext] .webextension-browser-action {
     list-style-image: var(--webextension-toolbar-image-light, inherit);
   }
 
-  .webextension-browser-action:-moz-lwtheme-darktext {
+  toolbar:not([brighttext]) .webextension-browser-action{
     list-style-image: var(--webextension-toolbar-image-dark, inherit);
   }
 
   .webextension-browser-action[cui-areatype="menu-panel"],
   toolbarpaletteitem[place="palette"] > .webextension-browser-action {
     list-style-image: var(--webextension-menupanel-image, inherit);
   }
 
-  toolbarpaletteitem[place="palette"] > .webextension-browser-action:-moz-lwtheme-brighttext {
+  toolbarpaletteitem[place="palette"] > .webextension-browser-action > toolbar[brighttext] {
     list-style-image: var(--webextension-menupanel-image-light, inherit);
   }
 
-  .webextension-browser-action[cui-areatype="menu-panel"]:-moz-lwtheme-darktext,
+  .webextension-browser-action[cui-areatype="menu-panel"] > toolbar[brighttext],
   toolbarpaletteitem[place="palette"] > .webextension-browser-action:-moz-lwtheme-darktext {
     list-style-image: var(--webextension-menupanel-image-dark, inherit);
   }
 
   .webextension-menuitem {
     list-style-image: var(--webextension-menuitem-image, inherit) !important;
   }
 }
--- a/browser/components/extensions/test/browser/browser-common.ini
+++ b/browser/components/extensions/test/browser/browser-common.ini
@@ -52,16 +52,17 @@ skip-if = os == 'linux'
 skip-if = (debug && os == 'linux' && bits == 32) || (os == 'win' && !debug) # Bug 1313372, win: Bug 1285500
 [browser_ext_browserAction_popup_port.js]
 [browser_ext_browserAction_popup_preload.js]
 skip-if = (os == 'win' && !debug) # bug 1352668
 [browser_ext_browserAction_popup_resize.js]
 [browser_ext_browserAction_simple.js]
 [browser_ext_browserAction_telemetry.js]
 [browser_ext_browserAction_theme_icons.js]
+[browser_ext_themes_icon_brighttext.js]
 [browser_ext_browsingData_formData.js]
 [browser_ext_browsingData_history.js]
 [browser_ext_browsingData_indexedDB.js]
 [browser_ext_browsingData_localStorage.js]
 [browser_ext_browsingData_pluginData.js]
 [browser_ext_browsingData_serviceWorkers.js]
 [browser_ext_chrome_settings_overrides_home.js]
 [browser_ext_commands_execute_browser_action.js]
new file mode 100644
--- /dev/null
+++ b/browser/components/extensions/test/browser/browser_ext_themes_icon_brighttext.js
@@ -0,0 +1,65 @@
+"use strict";
+
+add_task(async function test_icon_styling(browser, accDoc) {
+
+  function sleep(ms) {
+    return new Promise(resolve => setTimeout(resolve, ms));
+  }
+
+  async function testBrowserAction(extension, expectedIcon) {
+    let browserActionWidget = getBrowserActionWidget(extension);
+    await promiseAnimationFrame();
+    let browserActionButton = browserActionWidget.forWindow(window).node;
+    ok(getListStyleImage(browserActionButton).includes(expectedIcon), `Expected browser action icon to be ${expectedIcon}`);
+  }
+
+  let extension = ExtensionTestUtils.loadExtension({
+    manifest: {
+      "browser_action": {
+        "default_icon": "default.png",
+        "theme_icons": [{
+          "light": "light.png",
+          "dark": "dark.png",
+          "size": 16,
+        }, {
+          "light": "light.png",
+          "dark": "dark.png",
+          "size": 32,
+        }],
+      },
+    },
+  });
+
+  let theme = ExtensionTestUtils.loadExtension({
+    manifest: {
+      "theme": {
+        "colors": {
+          "accentcolor": "#4A5459",
+          "textcolor": "rgb(249, 249, 250)",
+          "tab_line": "#F4F8FF",
+          "toolbar": "#F4F8FF",
+          "toolbar_field": "white",
+          "toolbar_field_border": "#D0D3D9",
+          "toolbar_text": "#565656",
+          "toolbar_field_text": "#565656",
+          "toolbar_top_separator": "transparent",
+          "toolbar_bottom_separator": "#D0D3D9",
+          "toolbar_vertical_separator": "#D0D3D9"
+        }
+      },
+    },
+  });
+
+  await extension.startup();
+
+  await testBrowserAction(extension, "default.png");
+
+  await theme.startup();
+
+  await testBrowserAction(extension, "dark.png");
+
+  await theme.unload();
+
+  await extension.unload();
+  ok(true,"Test did not run")
+});
\ No newline at end of file
--- a/browser/components/tests/browser/browser.ini
+++ b/browser/components/tests/browser/browser.ini
@@ -1,8 +1,8 @@
 [DEFAULT]
 
 [browser_bug538331.js]
 skip-if = !updater
 reason = test depends on update channel
 [browser_contentpermissionprompt.js]
 [browser_default_bookmark_toolbar_visibility.js]
-[browser_urlbar_matchBuckets_migration60.js]
+[browser_urlbar_matchBuckets_migration60.js]
\ No newline at end of file