Bug 1379938 - Rename the -moz-windows-accent-color-applies media query and make -moz-win-accentcolor available without it. r=jimm
MozReview-Commit-ID: 9zMr9JwkloF
--- a/browser/themes/windows/browser-aero.css
+++ b/browser/themes/windows/browser-aero.css
@@ -50,24 +50,24 @@
@media not all and (-moz-os-version: windows-win7) {
@media not all and (-moz-os-version: windows-win8) {
@media (-moz-windows-default-theme) {
:root:not(:-moz-lwtheme) {
background-color: hsl(0, 0%, 78%);
}
%ifdef MOZ_PHOTON_THEME
- @media (-moz-windows-accent-color-applies: 0) {
+ @media (-moz-windows-accent-color-in-titlebar: 0) {
:root[tabsintitlebar]:not(:-moz-lwtheme) {
background-color: hsl(235,33%,19%);
--titlebar-text-color: hsl(240,9%,98%);
}
}
- @media (-moz-windows-accent-color-applies) {
+ @media (-moz-windows-accent-color-in-titlebar) {
:root[tabsintitlebar]:not(:-moz-window-inactive):not(:-moz-lwtheme) {
background-color: -moz-win-accentcolor;
--titlebar-text-color: -moz-win-accentcolortext;
}
}
%endif
:root[tabsintitlebar] .tab-label:-moz-window-inactive {
--- a/dom/base/nsGkAtomList.h
+++ b/dom/base/nsGkAtomList.h
@@ -2236,17 +2236,17 @@ GK_ATOM(forcemessagemanager, "forcemessa
// Names for system metrics
GK_ATOM(color_picker_available, "color-picker-available")
GK_ATOM(scrollbar_start_backward, "scrollbar-start-backward")
GK_ATOM(scrollbar_start_forward, "scrollbar-start-forward")
GK_ATOM(scrollbar_end_backward, "scrollbar-end-backward")
GK_ATOM(scrollbar_end_forward, "scrollbar-end-forward")
GK_ATOM(scrollbar_thumb_proportional, "scrollbar-thumb-proportional")
GK_ATOM(overlay_scrollbars, "overlay-scrollbars")
-GK_ATOM(windows_accent_color_applies, "windows-accent-color-applies")
+GK_ATOM(windows_accent_color_in_titlebar, "windows-accent-color-in-titlebar")
GK_ATOM(windows_default_theme, "windows-default-theme")
GK_ATOM(mac_graphite_theme, "mac-graphite-theme")
GK_ATOM(mac_yosemite_theme, "mac-yosemite-theme")
GK_ATOM(windows_compositor, "windows-compositor")
GK_ATOM(windows_glass, "windows-glass")
GK_ATOM(touch_enabled, "touch-enabled")
GK_ATOM(menubar_drag, "menubar-drag")
GK_ATOM(swipe_animation_enabled, "swipe-animation-enabled")
@@ -2266,17 +2266,17 @@ GK_ATOM(windows_theme_generic, "windows-
// And the same again, as media query keywords.
GK_ATOM(_moz_color_picker_available, "-moz-color-picker-available")
GK_ATOM(_moz_scrollbar_start_backward, "-moz-scrollbar-start-backward")
GK_ATOM(_moz_scrollbar_start_forward, "-moz-scrollbar-start-forward")
GK_ATOM(_moz_scrollbar_end_backward, "-moz-scrollbar-end-backward")
GK_ATOM(_moz_scrollbar_end_forward, "-moz-scrollbar-end-forward")
GK_ATOM(_moz_scrollbar_thumb_proportional, "-moz-scrollbar-thumb-proportional")
GK_ATOM(_moz_overlay_scrollbars, "-moz-overlay-scrollbars")
-GK_ATOM(_moz_windows_accent_color_applies, "-moz-windows-accent-color-applies")
+GK_ATOM(_moz_windows_accent_color_in_titlebar, "-moz-windows-accent-color-in-titlebar")
GK_ATOM(_moz_windows_default_theme, "-moz-windows-default-theme")
GK_ATOM(_moz_mac_graphite_theme, "-moz-mac-graphite-theme")
GK_ATOM(_moz_mac_yosemite_theme, "-moz-mac-yosemite-theme")
GK_ATOM(_moz_windows_compositor, "-moz-windows-compositor")
GK_ATOM(_moz_windows_classic, "-moz-windows-classic")
GK_ATOM(_moz_windows_glass, "-moz-windows-glass")
GK_ATOM(_moz_windows_theme, "-moz-windows-theme")
GK_ATOM(_moz_os_version, "-moz-os-version")
--- a/layout/style/nsCSSRuleProcessor.cpp
+++ b/layout/style/nsCSSRuleProcessor.cpp
@@ -1127,19 +1127,19 @@ nsCSSRuleProcessor::InitSystemMetrics()
sSystemMetrics->AppendElement(nsGkAtoms::mac_graphite_theme);
}
rv = LookAndFeel::GetInt(LookAndFeel::eIntID_MacYosemiteTheme, &metricResult);
if (NS_SUCCEEDED(rv) && metricResult) {
sSystemMetrics->AppendElement(nsGkAtoms::mac_yosemite_theme);
}
- rv = LookAndFeel::GetInt(LookAndFeel::eIntID_WindowsAccentColorApplies, &metricResult);
+ rv = LookAndFeel::GetInt(LookAndFeel::eIntID_WindowsAccentColorInTitlebar, &metricResult);
if (NS_SUCCEEDED(rv) && metricResult) {
- sSystemMetrics->AppendElement(nsGkAtoms::windows_accent_color_applies);
+ sSystemMetrics->AppendElement(nsGkAtoms::windows_accent_color_in_titlebar);
}
rv = LookAndFeel::GetInt(LookAndFeel::eIntID_DWMCompositor, &metricResult);
if (NS_SUCCEEDED(rv) && metricResult) {
sSystemMetrics->AppendElement(nsGkAtoms::windows_compositor);
}
rv = LookAndFeel::GetInt(LookAndFeel::eIntID_WindowsGlass, &metricResult);
--- a/layout/style/nsMediaFeatures.cpp
+++ b/layout/style/nsMediaFeatures.cpp
@@ -689,21 +689,21 @@ nsMediaFeatures::features[] = {
&nsGkAtoms::_moz_mac_yosemite_theme,
nsMediaFeature::eMinMaxNotAllowed,
nsMediaFeature::eBoolInteger,
nsMediaFeature::eNoRequirements,
{ &nsGkAtoms::mac_yosemite_theme },
GetSystemMetric
},
{
- &nsGkAtoms::_moz_windows_accent_color_applies,
+ &nsGkAtoms::_moz_windows_accent_color_in_titlebar,
nsMediaFeature::eMinMaxNotAllowed,
nsMediaFeature::eBoolInteger,
nsMediaFeature::eNoRequirements,
- { &nsGkAtoms::windows_accent_color_applies },
+ { &nsGkAtoms::windows_accent_color_in_titlebar },
GetSystemMetric
},
{
&nsGkAtoms::_moz_windows_compositor,
nsMediaFeature::eMinMaxNotAllowed,
nsMediaFeature::eBoolInteger,
nsMediaFeature::eNoRequirements,
{ &nsGkAtoms::windows_compositor },
--- a/layout/style/test/test_media_queries.html
+++ b/layout/style/test/test_media_queries.html
@@ -623,81 +623,81 @@ function run() {
expression_should_be_parseable("-moz-scrollbar-start-forward");
expression_should_be_parseable("-moz-scrollbar-end-backward");
expression_should_be_parseable("-moz-scrollbar-end-forward");
expression_should_be_parseable("-moz-scrollbar-thumb-proportional");
expression_should_be_parseable("-moz-overlay-scrollbars");
expression_should_be_parseable("-moz-windows-default-theme");
expression_should_be_parseable("-moz-mac-graphite-theme");
expression_should_be_parseable("-moz-mac-yosemite-theme");
- expression_should_be_parseable("-moz-windows-accent-color-applies");
+ expression_should_be_parseable("-moz-windows-accent-color-in-titlebar");
expression_should_be_parseable("-moz-windows-compositor");
expression_should_be_parseable("-moz-windows-classic");
expression_should_be_parseable("-moz-windows-glass");
expression_should_be_parseable("-moz-touch-enabled");
expression_should_be_parseable("-moz-swipe-animation-enabled");
expression_should_be_parseable("-moz-scrollbar-start-backward: 0");
expression_should_be_parseable("-moz-scrollbar-start-forward: 0");
expression_should_be_parseable("-moz-scrollbar-end-backward: 0");
expression_should_be_parseable("-moz-scrollbar-end-forward: 0");
expression_should_be_parseable("-moz-scrollbar-thumb-proportional: 0");
expression_should_be_parseable("-moz-overlay-scrollbars: 0");
expression_should_be_parseable("-moz-windows-default-theme: 0");
expression_should_be_parseable("-moz-mac-graphite-theme: 0");
expression_should_be_parseable("-moz-mac-yosemite-theme: 0");
- expression_should_be_parseable("-moz-windows-accent-color-applies: 0");
+ expression_should_be_parseable("-moz-windows-accent-color-in-titlebar: 0");
expression_should_be_parseable("-moz-windows-compositor: 0");
expression_should_be_parseable("-moz-windows-classic: 0");
expression_should_be_parseable("-moz-windows-glass: 0");
expression_should_be_parseable("-moz-touch-enabled: 0");
expression_should_be_parseable("-moz-swipe-animation-enabled: 0");
expression_should_be_parseable("-moz-scrollbar-start-backward: 1");
expression_should_be_parseable("-moz-scrollbar-start-forward: 1");
expression_should_be_parseable("-moz-scrollbar-end-backward: 1");
expression_should_be_parseable("-moz-scrollbar-end-forward: 1");
expression_should_be_parseable("-moz-scrollbar-thumb-proportional: 1");
expression_should_be_parseable("-moz-overlay-scrollbars: 1");
expression_should_be_parseable("-moz-windows-default-theme: 1");
expression_should_be_parseable("-moz-mac-graphite-theme: 1");
expression_should_be_parseable("-moz-mac-yosemite-theme: 1");
- expression_should_be_parseable("-moz-windows-accent-color-applies: 1");
+ expression_should_be_parseable("-moz-windows-accent-color-in-titlebar: 1");
expression_should_be_parseable("-moz-windows-compositor: 1");
expression_should_be_parseable("-moz-windows-classic: 1");
expression_should_be_parseable("-moz-windows-glass: 1");
expression_should_be_parseable("-moz-touch-enabled: 1");
expression_should_be_parseable("-moz-swipe-animation-enabled: 1");
expression_should_not_be_parseable("-moz-scrollbar-start-backward: -1");
expression_should_not_be_parseable("-moz-scrollbar-start-forward: -1");
expression_should_not_be_parseable("-moz-scrollbar-end-backward: -1");
expression_should_not_be_parseable("-moz-scrollbar-end-forward: -1");
expression_should_not_be_parseable("-moz-scrollbar-thumb-proportional: -1");
expression_should_not_be_parseable("-moz-overlay-scrollbars: -1");
expression_should_not_be_parseable("-moz-windows-default-theme: -1");
expression_should_not_be_parseable("-moz-mac-graphite-theme: -1");
expression_should_not_be_parseable("-moz-mac-yosemite-theme: -1");
- expression_should_not_be_parseable("-moz-windows-accent-color-applies: -1");
+ expression_should_not_be_parseable("-moz-windows-accent-color-in-titlebar: -1");
expression_should_not_be_parseable("-moz-windows-compositor: -1");
expression_should_not_be_parseable("-moz-windows-classic: -1");
expression_should_not_be_parseable("-moz-windows-glass: -1");
expression_should_not_be_parseable("-moz-touch-enabled: -1");
expression_should_not_be_parseable("-moz-swipe-animation-enabled: -1");
expression_should_not_be_parseable("-moz-scrollbar-start-backward: true");
expression_should_not_be_parseable("-moz-scrollbar-start-forward: true");
expression_should_not_be_parseable("-moz-scrollbar-end-backward: true");
expression_should_not_be_parseable("-moz-scrollbar-end-forward: true");
expression_should_not_be_parseable("-moz-scrollbar-thumb-proportional: true");
expression_should_not_be_parseable("-moz-overlay-scrollbars: true");
expression_should_not_be_parseable("-moz-windows-default-theme: true");
expression_should_not_be_parseable("-moz-mac-graphite-theme: true");
expression_should_not_be_parseable("-moz-mac-yosemite-theme: true");
- expression_should_not_be_parseable("-moz-windows-accent-color-applies: true");
+ expression_should_not_be_parseable("-moz-windows-accent-color-in-titlebar: true");
expression_should_not_be_parseable("-moz-windows-compositor: true");
expression_should_not_be_parseable("-moz-windows-classic: true");
expression_should_not_be_parseable("-moz-windows-glass: true");
expression_should_not_be_parseable("-moz-touch-enabled: true");
expression_should_not_be_parseable("-moz-swipe-animation-enabled: true");
// windows theme media queries
expression_should_be_parseable("-moz-windows-theme: aero");
--- a/widget/LookAndFeel.h
+++ b/widget/LookAndFeel.h
@@ -244,17 +244,17 @@ public:
/*
* A Boolean value to determine whether the Windows accent color
* should be applied to the title bar.
*
* The value of this metric is not used on other platforms. These platforms
* should return NS_ERROR_NOT_IMPLEMENTED when queried for this metric.
*/
- eIntID_WindowsAccentColorApplies,
+ eIntID_WindowsAccentColorInTitlebar,
/*
* A Boolean value to determine whether the Windows default theme is
* being used.
*
* The value of this metric is not used on other platforms. These platforms
* should return NS_ERROR_NOT_IMPLEMENTED when queried for this metric.
*/
--- a/widget/windows/nsLookAndFeel.cpp
+++ b/widget/windows/nsLookAndFeel.cpp
@@ -262,18 +262,16 @@ nsLookAndFeel::NativeGetColor(ColorID aI
case eColorID__moz_cellhighlight:
idx = COLOR_3DFACE;
break;
case eColorID__moz_win_accentcolor:
res = GetAccentColor(aColor);
if (NS_SUCCEEDED(res)) {
return res;
}
- NS_WARNING("Using fallback for accent color - UI code failed to use the "
- "-moz-windows-accent-color-applies media query properly");
// Seems to be the default color (hardcoded because of bug 1065998)
aColor = NS_RGB(158, 158, 158);
return NS_OK;
case eColorID__moz_win_accentcolortext:
res = GetAccentColorText(aColor);
if (NS_SUCCEEDED(res)) {
return res;
}
@@ -435,20 +433,41 @@ nsLookAndFeel::GetIntImpl(IntID aID, int
case eIntID_MacGraphiteTheme:
aResult = 0;
res = NS_ERROR_NOT_IMPLEMENTED;
break;
case eIntID_DWMCompositor:
aResult = nsUXThemeData::CheckForCompositor();
break;
- case eIntID_WindowsAccentColorApplies:
+ case eIntID_WindowsAccentColorInTitlebar:
{
nscolor unused;
- aResult = NS_SUCCEEDED(GetAccentColor(unused)) ? 1 : 0;
+ if (NS_WARN_IF(NS_FAILED(GetAccentColor(unused)))) {
+ aResult = 0;
+ break;
+ }
+
+ uint32_t colorPrevalence;
+ nsresult rv = mDwmKey->Open(nsIWindowsRegKey::ROOT_KEY_CURRENT_USER,
+ NS_LITERAL_STRING("SOFTWARE\\Microsoft\\Windows\\DWM"),
+ nsIWindowsRegKey::ACCESS_QUERY_VALUE);
+ if (NS_WARN_IF(NS_FAILED(rv))) {
+ return rv;
+ }
+
+ // The ColorPrevalence value is set to 1 when the "Show color on title bar"
+ // setting in the Color section of Window's Personalization settings is
+ // turned on.
+ aResult =
+ (NS_SUCCEEDED(mDwmKey->ReadIntValue(NS_LITERAL_STRING("ColorPrevalence"),
+ &colorPrevalence)) &&
+ colorPrevalence == 1) ? 1 : 0;
+
+ mDwmKey->Close();
}
break;
case eIntID_WindowsGlass:
// Aero Glass is only available prior to Windows 8 when DWM is used.
aResult = (nsUXThemeData::CheckForCompositor() && !IsWin8OrLater());
break;
case eIntID_AlertNotificationOrigin:
aResult = 0;
@@ -784,23 +803,18 @@ nsLookAndFeel::GetAccentColor(nscolor& a
rv = mDwmKey->Open(nsIWindowsRegKey::ROOT_KEY_CURRENT_USER,
NS_LITERAL_STRING("SOFTWARE\\Microsoft\\Windows\\DWM"),
nsIWindowsRegKey::ACCESS_QUERY_VALUE);
if (NS_WARN_IF(NS_FAILED(rv))) {
return rv;
}
- // The ColorPrevalence value is set to 1 when the "Show color on title bar"
- // setting in the Color section of Window's Personalization settings is
- // turned on.
- uint32_t accentColor, colorPrevalence;
- if (NS_SUCCEEDED(mDwmKey->ReadIntValue(NS_LITERAL_STRING("AccentColor"), &accentColor)) &&
- NS_SUCCEEDED(mDwmKey->ReadIntValue(NS_LITERAL_STRING("ColorPrevalence"), &colorPrevalence)) &&
- colorPrevalence == 1) {
+ uint32_t accentColor;
+ if (NS_SUCCEEDED(mDwmKey->ReadIntValue(NS_LITERAL_STRING("AccentColor"), &accentColor))) {
// The order of the color components in the DWORD stored in the registry
// happens to be the same order as we store the components in nscolor
// so we can just assign directly here.
aColor = accentColor;
rv = NS_OK;
} else {
rv = NS_ERROR_NOT_AVAILABLE;
}