Bug 1441708 - theme_icons is applied incorrectly when frame is dark and toolbar is light
MozReview-Commit-ID: 8dkpMNQfphq
--- 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