Diff
Modified: trunk/LayoutTests/ChangeLog (239903 => 239904)
--- trunk/LayoutTests/ChangeLog 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/LayoutTests/ChangeLog 2019-01-13 05:54:06 UTC (rev 239904)
@@ -1,3 +1,19 @@
+2019-01-12 Timothy Hatcher <[email protected]>
+
+ Have prefers-color-scheme: light always match on macOS versions before Mojave.
+ https://bugs.webkit.org/show_bug.cgi?id=191655
+ rdar://problem/46074680
+
+ Reviewed by Megan Gardner.
+
+ * css-dark-mode/older-systems/prefers-color-scheme-expected.txt: Added.
+ * css-dark-mode/older-systems/prefers-color-scheme.html: Added.
+ * css-dark-mode/older-systems/supported-color-schemes-css-expected.txt: Added.
+ * css-dark-mode/older-systems/supported-color-schemes-css.html: Added.
+ * css-dark-mode/older-systems/supported-color-schemes-expected.txt: Added.
+ * css-dark-mode/older-systems/supported-color-schemes.html: Added.
+ * platform/mac/TestExpectations:
+
2019-01-11 John Wilander <[email protected]>
Compile out Web API Statistics Collection
Added: trunk/LayoutTests/css-dark-mode/older-systems/prefers-color-scheme-expected.txt (0 => 239904)
--- trunk/LayoutTests/css-dark-mode/older-systems/prefers-color-scheme-expected.txt (rev 0)
+++ trunk/LayoutTests/css-dark-mode/older-systems/prefers-color-scheme-expected.txt 2019-01-13 05:54:06 UTC (rev 239904)
@@ -0,0 +1,4 @@
+
+PASS Element colors are correct in light color scheme
+PASS Element colors are correct in light color scheme with boolean context query
+
Added: trunk/LayoutTests/css-dark-mode/older-systems/prefers-color-scheme.html (0 => 239904)
--- trunk/LayoutTests/css-dark-mode/older-systems/prefers-color-scheme.html (rev 0)
+++ trunk/LayoutTests/css-dark-mode/older-systems/prefers-color-scheme.html 2019-01-13 05:54:06 UTC (rev 239904)
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+
+<!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] -->
+
+<script src=""
+<script src=""
+
+<style>
+div {
+ background-color: red;
+ color: text;
+}
+
+@media (prefers-color-scheme: light) {
+ #test1 {
+ background-color: lime;
+ }
+}
+
+@media (prefers-color-scheme: dark) {
+ /* This is valid, but should not apply for us since there is no dark mode support. */
+ #test1 {
+ background-color: blue;
+ }
+}
+
+@media (prefers-color-scheme: no-preference) {
+ /* This is valid, but should not apply for us since there is no option for no user preference. */
+ #test1 {
+ background-color: cyan;
+ }
+}
+
+@media (prefers-color-scheme: foo) {
+ /* This is invalid and should not apply. */
+ #test1 {
+ background-color: yellow;
+ }
+}
+
+@media (prefers-color-scheme) {
+ /* This is valid and should always apply for us, since there is always a user preference currently. */
+ #test2 {
+ background-color: lime;
+ }
+}
+</style>
+
+<div id="test1"></div>
+<div id="test2"></div>
+
+<script>
+function test_prop(id, prop, expected) {
+ assert_equals(window.getComputedStyle(document.getElementById(id)).getPropertyValue(prop).trim(), expected);
+}
+
+test(function() {
+ // Styled background-color in media query should be lime green.
+ test_prop("test1", "background-color", "rgb(0, 255, 0)");
+
+ // The semantic text color should be black.
+ test_prop("test1", "color", "rgb(0, 0, 0)");
+}, "Element colors are correct in light color scheme");
+
+test(function() {
+ // Styled background-color in media query should be lime green.
+ test_prop("test2", "background-color", "rgb(0, 255, 0)");
+
+ // The semantic text color should be black.
+ test_prop("test2", "color", "rgb(0, 0, 0)");
+}, "Element colors are correct in light color scheme with boolean context query");
+</script>
Added: trunk/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css-expected.txt (0 => 239904)
--- trunk/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css-expected.txt (rev 0)
+++ trunk/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css-expected.txt 2019-01-13 05:54:06 UTC (rev 239904)
@@ -0,0 +1,20 @@
+
+PASS Element colors are correct in light color scheme with only light supported color scheme
+PASS Supported color schemes changed to light and dark
+PASS Element colors are correct in light color scheme with light and dark supported color scheme
+PASS Supported color schemes changed to dark
+PASS Element colors are correct in light color scheme with only dark supported color scheme
+PASS Supported color schemes changed to light and a bogus value
+PASS Element colors are correct in light color scheme with only light supported color scheme
+PASS Supported color schemes changed to auto value
+PASS Element colors are correct in light color scheme with implicit light supported color scheme
+PASS Supported color schemes changed to light and dark via <meta> element
+PASS Element colors are correct in light color scheme with light and dark supported color scheme via <meta> element
+PASS Supported color schemes changed to light value
+PASS Element colors are correct in light color scheme with explicit light, overriding <meta> element
+PASS Remove test meta element
+PASS Supported color schemes changed to light and dark
+PASS Element colors are correct in light color scheme with light and dark supported color scheme
+PASS Supported color schemes changed to a bogus value and dark
+PASS Element colors are correct in light color scheme with dark supported color scheme
+
Added: trunk/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css.html (0 => 239904)
--- trunk/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css.html (rev 0)
+++ trunk/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css.html 2019-01-13 05:54:06 UTC (rev 239904)
@@ -0,0 +1,105 @@
+<!DOCTYPE html>
+
+<!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] -->
+
+<script src=""
+<script src=""
+
+<style>
+#test1 {
+ color: text;
+}
+</style>
+
+<div id="test1"></div>
+
+<script>
+function test_prop(id, prop, expected) {
+ assert_equals(window.getComputedStyle(document.getElementById(id)).getPropertyValue(prop), expected);
+}
+
+function test_color_is_black(id) {
+ test_prop("test1", "color", "rgb(0, 0, 0)");
+}
+
+test(function() {
+ // The semantic text color should be black.
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with only light supported color scheme");
+
+test(function() {
+ document.body.style.setProperty("supported-color-schemes", "light dark");
+}, "Supported color schemes changed to light and dark");
+
+test(function() {
+ // The semantic text color should be black.
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with light and dark supported color scheme");
+
+test(function() {
+ document.body.style.setProperty("supported-color-schemes", "dark");
+}, "Supported color schemes changed to dark");
+
+test(function() {
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with only dark supported color scheme");
+
+test(function() {
+ document.body.style.setProperty("supported-color-schemes", "light foo");
+}, "Supported color schemes changed to light and a bogus value");
+
+test(function() {
+ // The semantic text color should be black again.
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with only light supported color scheme");
+
+test(function() {
+ document.body.style.setProperty("supported-color-schemes", "auto");
+}, "Supported color schemes changed to auto value");
+
+test(function() {
+ // The semantic text color should be black still.
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with implicit light supported color scheme");
+
+test(function() {
+ let meta = document.createElement("meta");
+ meta.id = "test-meta";
+ meta.name = "supported-color-schemes";
+ meta.content = "light dark";
+ document.head.appendChild(meta);
+}, "Supported color schemes changed to light and dark via <meta> element");
+
+test(function() {
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with light and dark supported color scheme via <meta> element");
+
+test(function() {
+ document.body.style.setProperty("supported-color-schemes", "light");
+}, "Supported color schemes changed to light value");
+
+test(function() {
+ // The semantic text color should be black again.
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with explicit light, overriding <meta> element");
+
+test(function() {
+ document.getElementById("test-meta").remove();
+}, "Remove test meta element");
+
+test(function() {
+ document.body.style.setProperty("supported-color-schemes", "light dark");
+}, "Supported color schemes changed to light and dark");
+
+test(function() {
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with light and dark supported color scheme");
+
+test(function() {
+ document.body.style.setProperty("supported-color-schemes", "foo dark");
+}, "Supported color schemes changed to a bogus value and dark");
+
+test(function() {
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with dark supported color scheme");
+</script>
Added: trunk/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-expected.txt (0 => 239904)
--- trunk/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-expected.txt (rev 0)
+++ trunk/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-expected.txt 2019-01-13 05:54:06 UTC (rev 239904)
@@ -0,0 +1,15 @@
+
+PASS Element colors are correct in light color scheme with only light supported color scheme
+PASS Supported color schemes changed to light and dark
+PASS Element colors are correct in light color scheme with light and dark supported color scheme
+PASS Supported color schemes changed to dark
+PASS Element colors are correct in light color scheme with only dark supported color scheme
+PASS Supported color schemes changed to light and a bogus value
+PASS Element colors are correct in light color scheme with only light supported color scheme
+PASS Supported color schemes changed to empty value
+PASS Element colors are correct in light color scheme with implicit light supported color scheme
+PASS Supported color schemes changed to light and dark
+PASS Element colors are correct in light color scheme with light and dark supported color scheme
+PASS Supported color schemes changed to a bogus value and dark
+PASS Element colors are correct in light color scheme with dark supported color scheme
+
Added: trunk/LayoutTests/css-dark-mode/older-systems/supported-color-schemes.html (0 => 239904)
--- trunk/LayoutTests/css-dark-mode/older-systems/supported-color-schemes.html (rev 0)
+++ trunk/LayoutTests/css-dark-mode/older-systems/supported-color-schemes.html 2019-01-13 05:54:06 UTC (rev 239904)
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+
+<!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] -->
+
+<script src=""
+<script src=""
+
+<style>
+#test1 {
+ color: text;
+}
+</style>
+
+<meta id="meta" name="supported-color-schemes" content="light">
+
+<div id="test1"></div>
+
+<script>
+function test_prop(id, prop, expected) {
+ assert_equals(window.getComputedStyle(document.getElementById(id)).getPropertyValue(prop).trim(), expected);
+}
+
+function test_color_is_black(id) {
+ test_prop("test1", "color", "rgb(0, 0, 0)");
+}
+
+test(function() {
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with only light supported color scheme");
+
+test(function() {
+ document.getElementById("meta").content = "light dark";
+}, "Supported color schemes changed to light and dark");
+
+test(function() {
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with light and dark supported color scheme");
+
+test(function() {
+ document.getElementById("meta").content = "dark";
+}, "Supported color schemes changed to dark");
+
+test(function() {
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with only dark supported color scheme");
+
+test(function() {
+ document.getElementById("meta").content = "light ,foo ";
+}, "Supported color schemes changed to light and a bogus value");
+
+test(function() {
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with only light supported color scheme");
+
+test(function() {
+ document.getElementById("meta").content = "";
+}, "Supported color schemes changed to empty value");
+
+test(function() {
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with implicit light supported color scheme");
+
+test(function() {
+ document.getElementById("meta").content = " light, dark ";
+}, "Supported color schemes changed to light and dark");
+
+test(function() {
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with light and dark supported color scheme");
+
+test(function() {
+ document.getElementById("meta").content = ", foo dark";
+}, "Supported color schemes changed to a bogus value and dark");
+
+test(function() {
+ test_color_is_black("test1");
+}, "Element colors are correct in light color scheme with dark supported color scheme");
+</script>
Modified: trunk/LayoutTests/platform/mac/TestExpectations (239903 => 239904)
--- trunk/LayoutTests/platform/mac/TestExpectations 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/LayoutTests/platform/mac/TestExpectations 2019-01-13 05:54:06 UTC (rev 239904)
@@ -1767,8 +1767,12 @@
# Dark Mode is Mojave and later.
[ Mojave+ ] css-dark-mode [ Pass ]
+[ Mojave+ ] css-dark-mode/older-systems [ Skip ]
[ Mojave+ ] inspector/css/force-page-appearance.html [ Pass ]
+# Test Dark Mode CSS support for light mode on older systems.
+[ Sierra HighSierra ] css-dark-mode/older-systems [ Pass ]
+
webkit.org/b/185651 legacy-animation-engine/animations/play-state-in-shorthand.html [ Pass Failure ]
webkit.org/b/189686 webgl/2.0.0/conformance/textures/misc/tex-image-and-sub-image-2d-with-array-buffer-view.html [ Slow ]
Modified: trunk/Source/_javascript_Core/ChangeLog (239903 => 239904)
--- trunk/Source/_javascript_Core/ChangeLog 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/_javascript_Core/ChangeLog 2019-01-13 05:54:06 UTC (rev 239904)
@@ -1,3 +1,13 @@
+2019-01-12 Timothy Hatcher <[email protected]>
+
+ Have prefers-color-scheme: light always match on macOS versions before Mojave.
+ https://bugs.webkit.org/show_bug.cgi?id=191655
+ rdar://problem/46074680
+
+ Reviewed by Megan Gardner.
+
+ * Configurations/FeatureDefines.xcconfig: ENABLE_DARK_MODE_CSS_macosx for all OS versions.
+
2019-01-12 Yusuke Suzuki <[email protected]>
Unreviewed, fix scope check assertions
Modified: trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig (239903 => 239904)
--- trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig 2019-01-13 05:54:06 UTC (rev 239904)
@@ -113,8 +113,7 @@
ENABLE_CUSTOM_SCHEME_HANDLER = ;
ENABLE_DARK_MODE_CSS = $(ENABLE_DARK_MODE_CSS_$(WK_PLATFORM_NAME));
-ENABLE_DARK_MODE_CSS_macosx = $(ENABLE_DARK_MODE_CSS$(WK_MACOS_1014));
-ENABLE_DARK_MODE_CSS_MACOS_SINCE_1014 = ENABLE_DARK_MODE_CSS;
+ENABLE_DARK_MODE_CSS_macosx = ENABLE_DARK_MODE_CSS;
ENABLE_DASHBOARD_SUPPORT = $(ENABLE_DASHBOARD_SUPPORT_$(WK_PLATFORM_NAME));
ENABLE_DASHBOARD_SUPPORT_macosx = ENABLE_DASHBOARD_SUPPORT;
Modified: trunk/Source/WTF/ChangeLog (239903 => 239904)
--- trunk/Source/WTF/ChangeLog 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WTF/ChangeLog 2019-01-13 05:54:06 UTC (rev 239904)
@@ -1,3 +1,13 @@
+2019-01-12 Timothy Hatcher <[email protected]>
+
+ Have prefers-color-scheme: light always match on macOS versions before Mojave.
+ https://bugs.webkit.org/show_bug.cgi?id=191655
+ rdar://problem/46074680
+
+ Reviewed by Megan Gardner.
+
+ * wtf/Platform.h: Define HAVE_OS_DARK_MODE_SUPPORT on macOS 10.14.
+
2019-01-11 David Kilzer <[email protected]>
Follow-up: WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
Modified: trunk/Source/WTF/wtf/Platform.h (239903 => 239904)
--- trunk/Source/WTF/wtf/Platform.h 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WTF/wtf/Platform.h 2019-01-13 05:54:06 UTC (rev 239904)
@@ -1417,6 +1417,10 @@
#endif
#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#define HAVE_OS_DARK_MODE_SUPPORT 1
+#endif
+
+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
#define HAVE_CG_FONT_RENDERING_GET_FONT_SMOOTHING_DISABLED 1
#endif
Modified: trunk/Source/WebCore/ChangeLog (239903 => 239904)
--- trunk/Source/WebCore/ChangeLog 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebCore/ChangeLog 2019-01-13 05:54:06 UTC (rev 239904)
@@ -1,3 +1,43 @@
+2019-01-12 Timothy Hatcher <[email protected]>
+
+ Have prefers-color-scheme: light always match on macOS versions before Mojave.
+ https://bugs.webkit.org/show_bug.cgi?id=191655
+ rdar://problem/46074680
+
+ Reviewed by Megan Gardner.
+
+ Tests: css-dark-mode/older-systems/prefers-color-scheme.html
+ css-dark-mode/older-systems/supported-color-schemes-css.html
+ css-dark-mode/older-systems/supported-color-schemes.html
+
+ Use new HAVE(OS_DARK_MODE_SUPPORT) to make it easier to find code.
+ Added HAVE(OS_DARK_MODE_SUPPORT) around more bits to make it work on older systems.
+
+ * Configurations/FeatureDefines.xcconfig:
+ * dom/Document.cpp:
+ (WebCore::Document::useDarkAppearance const):
+ * inspector/agents/InspectorPageAgent.cpp:
+ (WebCore::InspectorPageAgent::enable):
+ * page/Page.cpp:
+ (WebCore::Page::setUseDarkAppearance):
+ (WebCore::Page::useDarkAppearance const):
+ (WebCore::Page::setUseDarkAppearanceOverride):
+ * platform/mac/LocalDefaultSystemAppearance.h:
+ (WebCore::LocalDefaultSystemAppearance::usingDarkAppearance const):
+ * platform/mac/LocalDefaultSystemAppearance.mm:
+ (WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance):
+ (WebCore::LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance):
+ * platform/mac/ScrollAnimatorMac.mm:
+ * rendering/RenderThemeMac.mm:
+ (-[WebCoreTextFieldCell _adjustedCoreUIDrawOptionsForDrawingBordersOnly:]):
+ (-[WebListButtonCell drawWithFrame:inView:]):
+ (WebCore::RenderThemeMac::platformInactiveSelectionBackgroundColor const):
+ (WebCore::RenderThemeMac::platformInactiveSelectionForegroundColor const):
+ (WebCore::RenderThemeMac::platformActiveListBoxSelectionBackgroundColor const):
+ (WebCore::RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor const):
+ (WebCore::RenderThemeMac::platformInactiveListBoxSelectionForegroundColor const):
+ (WebCore::RenderThemeMac::systemColor const):
+
2019-01-12 Zalan Bujtas <[email protected]>
[LFC] Block/InlinFormattingContext should take Block/InlineFormattingState
Modified: trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig (239903 => 239904)
--- trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig 2019-01-13 05:54:06 UTC (rev 239904)
@@ -113,8 +113,7 @@
ENABLE_CUSTOM_SCHEME_HANDLER = ;
ENABLE_DARK_MODE_CSS = $(ENABLE_DARK_MODE_CSS_$(WK_PLATFORM_NAME));
-ENABLE_DARK_MODE_CSS_macosx = $(ENABLE_DARK_MODE_CSS$(WK_MACOS_1014));
-ENABLE_DARK_MODE_CSS_MACOS_SINCE_1014 = ENABLE_DARK_MODE_CSS;
+ENABLE_DARK_MODE_CSS_macosx = ENABLE_DARK_MODE_CSS;
ENABLE_DASHBOARD_SUPPORT = $(ENABLE_DASHBOARD_SUPPORT_$(WK_PLATFORM_NAME));
ENABLE_DASHBOARD_SUPPORT_macosx = ENABLE_DASHBOARD_SUPPORT;
Modified: trunk/Source/WebCore/PAL/ChangeLog (239903 => 239904)
--- trunk/Source/WebCore/PAL/ChangeLog 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebCore/PAL/ChangeLog 2019-01-13 05:54:06 UTC (rev 239904)
@@ -1,3 +1,13 @@
+2019-01-12 Timothy Hatcher <[email protected]>
+
+ Have prefers-color-scheme: light always match on macOS versions before Mojave.
+ https://bugs.webkit.org/show_bug.cgi?id=191655
+ rdar://problem/46074680
+
+ Reviewed by Megan Gardner.
+
+ * Configurations/FeatureDefines.xcconfig: ENABLE_DARK_MODE_CSS_macosx for all OS versions.
+
2019-01-12 Dan Bernstein <[email protected]>
[Cocoa] Avoid importing directly from subumbrella frameworks
Modified: trunk/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig (239903 => 239904)
--- trunk/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig 2019-01-13 05:54:06 UTC (rev 239904)
@@ -113,8 +113,7 @@
ENABLE_CUSTOM_SCHEME_HANDLER = ;
ENABLE_DARK_MODE_CSS = $(ENABLE_DARK_MODE_CSS_$(WK_PLATFORM_NAME));
-ENABLE_DARK_MODE_CSS_macosx = $(ENABLE_DARK_MODE_CSS$(WK_MACOS_1014));
-ENABLE_DARK_MODE_CSS_MACOS_SINCE_1014 = ENABLE_DARK_MODE_CSS;
+ENABLE_DARK_MODE_CSS_macosx = ENABLE_DARK_MODE_CSS;
ENABLE_DASHBOARD_SUPPORT = $(ENABLE_DASHBOARD_SUPPORT_$(WK_PLATFORM_NAME));
ENABLE_DASHBOARD_SUPPORT_macosx = ENABLE_DASHBOARD_SUPPORT;
Modified: trunk/Source/WebCore/dom/Document.cpp (239903 => 239904)
--- trunk/Source/WebCore/dom/Document.cpp 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebCore/dom/Document.cpp 2019-01-13 05:54:06 UTC (rev 239904)
@@ -7419,6 +7419,7 @@
bool Document::useDarkAppearance(const RenderStyle* style) const
{
+#if HAVE(OS_DARK_MODE_SUPPORT)
#if ENABLE(DARK_MODE_CSS)
OptionSet<ColorSchemes> supportedColorSchemes;
@@ -7447,6 +7448,9 @@
if (supportedColorSchemes.contains(ColorSchemes::Dark))
return pageUsesDarkAppearance;
#endif
+#else
+ UNUSED_PARAM(style);
+#endif
return false;
}
Modified: trunk/Source/WebCore/inspector/agents/InspectorPageAgent.cpp (239903 => 239904)
--- trunk/Source/WebCore/inspector/agents/InspectorPageAgent.cpp 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebCore/inspector/agents/InspectorPageAgent.cpp 2019-01-13 05:54:06 UTC (rev 239904)
@@ -301,7 +301,7 @@
stopwatch->reset();
stopwatch->start();
-#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
defaultAppearanceDidChange(m_page.defaultUseDarkAppearance());
#endif
}
Modified: trunk/Source/WebCore/page/Page.cpp (239903 => 239904)
--- trunk/Source/WebCore/page/Page.cpp 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebCore/page/Page.cpp 2019-01-13 05:54:06 UTC (rev 239904)
@@ -2666,6 +2666,7 @@
void Page::setUseDarkAppearance(bool value)
{
+#if HAVE(OS_DARK_MODE_SUPPORT)
if (m_useDarkAppearance == value)
return;
@@ -2674,10 +2675,14 @@
InspectorInstrumentation::defaultAppearanceDidChange(*this, value);
appearanceDidChange();
+#else
+ UNUSED_PARAM(value);
+#endif
}
bool Page::useDarkAppearance() const
{
+#if HAVE(OS_DARK_MODE_SUPPORT)
FrameView* view = mainFrame().view();
if (!view || !equalLettersIgnoringASCIICase(view->mediaType(), "screen"))
return false;
@@ -2684,10 +2689,14 @@
if (m_useDarkAppearanceOverride)
return m_useDarkAppearanceOverride.value();
return m_useDarkAppearance;
+#else
+ return false;
+#endif
}
void Page::setUseDarkAppearanceOverride(Optional<bool> valueOverride)
{
+#if HAVE(OS_DARK_MODE_SUPPORT)
if (valueOverride == m_useDarkAppearanceOverride)
return;
@@ -2694,6 +2703,9 @@
m_useDarkAppearanceOverride = valueOverride;
appearanceDidChange();
+#else
+ UNUSED_PARAM(valueOverride);
+#endif
}
void Page::setFullscreenInsets(const FloatBoxExtent& insets)
Modified: trunk/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.h (239903 => 239904)
--- trunk/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.h 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.h 2019-01-13 05:54:06 UTC (rev 239904)
@@ -45,7 +45,7 @@
bool usingDarkAppearance() const
{
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
return m_usingDarkAppearance;
#else
return false;
@@ -53,7 +53,7 @@
}
private:
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
RetainPtr<NSAppearance> m_savedSystemAppearance;
bool m_usingDarkAppearance { false };
#endif
Modified: trunk/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm (239903 => 239904)
--- trunk/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm 2019-01-13 05:54:06 UTC (rev 239904)
@@ -33,7 +33,7 @@
LocalDefaultSystemAppearance::LocalDefaultSystemAppearance(bool useDarkAppearance)
{
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
m_savedSystemAppearance = [NSAppearance currentAppearance];
m_usingDarkAppearance = useDarkAppearance;
@@ -45,7 +45,7 @@
LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance()
{
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
[NSAppearance setCurrentAppearance:m_savedSystemAppearance.get()];
#endif
}
Modified: trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm (239903 => 239904)
--- trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebCore/platform/mac/ScrollAnimatorMac.mm 2019-01-13 05:54:06 UTC (rev 239904)
@@ -527,7 +527,7 @@
return _scrollbar->supportsUpdateOnSecondaryThread();
}
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
- (NSAppearance *)effectiveAppearanceForScrollerImp:(NSScrollerImp *)scrollerImp
{
UNUSED_PARAM(scrollerImp);
Modified: trunk/Source/WebCore/rendering/RenderThemeMac.mm (239903 => 239904)
--- trunk/Source/WebCore/rendering/RenderThemeMac.mm 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebCore/rendering/RenderThemeMac.mm 2019-01-13 05:54:06 UTC (rev 239904)
@@ -162,7 +162,7 @@
- (CFDictionaryRef)_adjustedCoreUIDrawOptionsForDrawingBordersOnly:(CFDictionaryRef)defaultOptions
{
-#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
// Dark mode controls don't have borders, just a semi-transparent background of shadows.
// In the dark mode case we can't disable borders, or we will not paint anything for the control.
NSAppearanceName appearance = [self.controlView.effectiveAppearance bestMatchFromAppearancesWithNames:@[ NSAppearanceNameAqua, NSAppearanceNameDarkAqua ]];
@@ -235,7 +235,7 @@
// FIXME: Obtain the gradient colors from CoreUI or AppKit
RetainPtr<NSGradient> gradient;
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
NSUserAccentColor accentColor = NSColorGetUserAccentColor();
if (accentColor == NSUserAccentColorRed)
gradient = adoptNS([[NSGradient alloc] initWithStartingColor:[NSColor colorWithRed:(212.0 / 255) green:(122.0 / 255) blue:(117.0 / 255) alpha:1.0] endingColor:[NSColor colorWithRed:(189.0 / 255) green:(34.0 / 255) blue:(23.0 / 255) alpha:1.0]]);
@@ -398,7 +398,7 @@
Color RenderThemeMac::platformInactiveSelectionBackgroundColor(OptionSet<StyleColor::Options> options) const
{
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColor::Options::UseDarkAppearance));
return colorFromNSColor([NSColor unemphasizedSelectedTextBackgroundColor]);
#else
@@ -435,7 +435,7 @@
Color RenderThemeMac::platformInactiveSelectionForegroundColor(OptionSet<StyleColor::Options> options) const
{
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColor::Options::UseDarkAppearance));
if (localAppearance.usingDarkAppearance())
return colorFromNSColor([NSColor unemphasizedSelectedTextColor]);
@@ -448,7 +448,7 @@
Color RenderThemeMac::platformActiveListBoxSelectionBackgroundColor(OptionSet<StyleColor::Options> options) const
{
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColor::Options::UseDarkAppearance));
return colorFromNSColor([NSColor selectedContentBackgroundColor]);
#else
@@ -459,7 +459,7 @@
Color RenderThemeMac::platformInactiveListBoxSelectionBackgroundColor(OptionSet<StyleColor::Options> options) const
{
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColor::Options::UseDarkAppearance));
return colorFromNSColor([NSColor unemphasizedSelectedContentBackgroundColor]);
#else
@@ -476,7 +476,7 @@
Color RenderThemeMac::platformInactiveListBoxSelectionForegroundColor(OptionSet<StyleColor::Options> options) const
{
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
LocalDefaultSystemAppearance localAppearance(options.contains(StyleColor::Options::UseDarkAppearance));
return colorFromNSColor([NSColor unemphasizedSelectedTextColor]);
#else
@@ -659,7 +659,7 @@
return focusRingColor(options);
case CSSValueAppleSystemControlAccent:
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
return systemAppearanceColor(cache.systemControlAccentColor, @selector(controlAccentColor));
#else
return systemAppearanceColor(cache.systemControlAccentColor, @selector(alternateSelectedControlColor));
@@ -740,7 +740,7 @@
case CSSValueAppleSystemAlternateSelectedText:
return @selector(alternateSelectedControlTextColor);
case CSSValueAppleSystemUnemphasizedSelectedContentBackground:
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
return @selector(unemphasizedSelectedContentBackgroundColor);
#else
return @selector(secondarySelectedControlColor);
@@ -748,13 +748,13 @@
case CSSValueAppleSystemSelectedText:
return @selector(selectedTextColor);
case CSSValueAppleSystemUnemphasizedSelectedText:
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
return @selector(unemphasizedSelectedTextColor);
#else
return @selector(textColor);
#endif
case CSSValueAppleSystemUnemphasizedSelectedTextBackground:
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
return @selector(unemphasizedSelectedTextBackgroundColor);
#else
return @selector(secondarySelectedControlColor);
@@ -769,7 +769,7 @@
return nullptr;
#endif
case CSSValueAppleSystemContainerBorder:
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
return @selector(containerBorderColor);
#else
// Handled below.
@@ -786,7 +786,7 @@
case CSSValueAppleSystemGrid:
return @selector(gridColor);
case CSSValueAppleSystemSeparator:
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
return @selector(separatorColor);
#else
return @selector(gridColor);
@@ -869,13 +869,13 @@
return platformActiveTextSearchHighlightColor(options);
#endif
-#if __MAC_OS_X_VERSION_MIN_REQUIRED < 101400
+#if !HAVE(OS_DARK_MODE_SUPPORT)
case CSSValueAppleSystemContainerBorder:
return 0xFFC5C5C5;
#endif
case CSSValueAppleSystemEvenAlternatingContentBackground: {
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
NSArray<NSColor *> *alternateColors = [NSColor alternatingContentBackgroundColors];
#else
NSArray<NSColor *> *alternateColors = [NSColor controlAlternatingRowBackgroundColors];
@@ -885,7 +885,7 @@
}
case CSSValueAppleSystemOddAlternatingContentBackground: {
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
NSArray<NSColor *> *alternateColors = [NSColor alternatingContentBackgroundColors];
#else
NSArray<NSColor *> *alternateColors = [NSColor controlAlternatingRowBackgroundColors];
Modified: trunk/Source/WebKit/ChangeLog (239903 => 239904)
--- trunk/Source/WebKit/ChangeLog 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebKit/ChangeLog 2019-01-13 05:54:06 UTC (rev 239904)
@@ -1,3 +1,16 @@
+2019-01-12 Timothy Hatcher <[email protected]>
+
+ Have prefers-color-scheme: light always match on macOS versions before Mojave.
+ https://bugs.webkit.org/show_bug.cgi?id=191655
+ rdar://problem/46074680
+
+ Reviewed by Megan Gardner.
+
+ * Configurations/FeatureDefines.xcconfig: ENABLE_DARK_MODE_CSS_macosx for all OS versions.
+ * UIProcess/Cocoa/WebViewImpl.mm:
+ (WebKit::WebViewImpl::effectiveAppearanceIsDark):
+ * UIProcess/RemoteLayerTree/mac/ScrollerMac.mm:
+
2019-01-12 Dan Bernstein <[email protected]>
[Cocoa] Avoid importing directly from subumbrella frameworks
Modified: trunk/Source/WebKit/Configurations/FeatureDefines.xcconfig (239903 => 239904)
--- trunk/Source/WebKit/Configurations/FeatureDefines.xcconfig 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebKit/Configurations/FeatureDefines.xcconfig 2019-01-13 05:54:06 UTC (rev 239904)
@@ -113,8 +113,7 @@
ENABLE_CUSTOM_SCHEME_HANDLER = ;
ENABLE_DARK_MODE_CSS = $(ENABLE_DARK_MODE_CSS_$(WK_PLATFORM_NAME));
-ENABLE_DARK_MODE_CSS_macosx = $(ENABLE_DARK_MODE_CSS$(WK_MACOS_1014));
-ENABLE_DARK_MODE_CSS_MACOS_SINCE_1014 = ENABLE_DARK_MODE_CSS;
+ENABLE_DARK_MODE_CSS_macosx = ENABLE_DARK_MODE_CSS;
ENABLE_DASHBOARD_SUPPORT = $(ENABLE_DASHBOARD_SUPPORT_$(WK_PLATFORM_NAME));
ENABLE_DASHBOARD_SUPPORT_macosx = ENABLE_DASHBOARD_SUPPORT;
Modified: trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm (239903 => 239904)
--- trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm 2019-01-13 05:54:06 UTC (rev 239904)
@@ -5328,7 +5328,7 @@
bool WebViewImpl::effectiveAppearanceIsDark()
{
-#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
NSAppearanceName appearance = [[m_view effectiveAppearance] bestMatchFromAppearancesWithNames:@[ NSAppearanceNameAqua, NSAppearanceNameDarkAqua ]];
return [appearance isEqualToString:NSAppearanceNameDarkAqua];
#else
Modified: trunk/Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollerMac.mm (239903 => 239904)
--- trunk/Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollerMac.mm 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollerMac.mm 2019-01-13 05:54:06 UTC (rev 239904)
@@ -195,7 +195,7 @@
return true;
}
-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
- (NSAppearance *)effectiveAppearanceForScrollerImp:(NSScrollerImp *)scrollerImp
{
UNUSED_PARAM(scrollerImp);
Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (239903 => 239904)
--- trunk/Source/WebKitLegacy/mac/ChangeLog 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog 2019-01-13 05:54:06 UTC (rev 239904)
@@ -1,3 +1,15 @@
+2019-01-12 Timothy Hatcher <[email protected]>
+
+ Have prefers-color-scheme: light always match on macOS versions before Mojave.
+ https://bugs.webkit.org/show_bug.cgi?id=191655
+ rdar://problem/46074680
+
+ Reviewed by Megan Gardner.
+
+ * Configurations/FeatureDefines.xcconfig: ENABLE_DARK_MODE_CSS_macosx for all OS versions.
+ * WebView/WebView.mm:
+ (-[WebView _effectiveAppearanceIsDark]):
+
2019-01-12 Dan Bernstein <[email protected]>
[Cocoa] Avoid importing directly from subumbrella frameworks
Modified: trunk/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig (239903 => 239904)
--- trunk/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig 2019-01-13 05:54:06 UTC (rev 239904)
@@ -113,8 +113,7 @@
ENABLE_CUSTOM_SCHEME_HANDLER = ;
ENABLE_DARK_MODE_CSS = $(ENABLE_DARK_MODE_CSS_$(WK_PLATFORM_NAME));
-ENABLE_DARK_MODE_CSS_macosx = $(ENABLE_DARK_MODE_CSS$(WK_MACOS_1014));
-ENABLE_DARK_MODE_CSS_MACOS_SINCE_1014 = ENABLE_DARK_MODE_CSS;
+ENABLE_DARK_MODE_CSS_macosx = ENABLE_DARK_MODE_CSS;
ENABLE_DASHBOARD_SUPPORT = $(ENABLE_DASHBOARD_SUPPORT_$(WK_PLATFORM_NAME));
ENABLE_DASHBOARD_SUPPORT_macosx = ENABLE_DASHBOARD_SUPPORT;
Modified: trunk/Source/WebKitLegacy/mac/WebView/WebView.mm (239903 => 239904)
--- trunk/Source/WebKitLegacy/mac/WebView/WebView.mm 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebView.mm 2019-01-13 05:54:06 UTC (rev 239904)
@@ -5297,7 +5297,7 @@
- (bool)_effectiveAppearanceIsDark
{
-#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400
+#if HAVE(OS_DARK_MODE_SUPPORT)
NSAppearanceName appearance = [[self effectiveAppearance] bestMatchFromAppearancesWithNames:@[ NSAppearanceNameAqua, NSAppearanceNameDarkAqua ]];
return [appearance isEqualToString:NSAppearanceNameDarkAqua];
#else
Modified: trunk/Tools/ChangeLog (239903 => 239904)
--- trunk/Tools/ChangeLog 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Tools/ChangeLog 2019-01-13 05:54:06 UTC (rev 239904)
@@ -1,3 +1,14 @@
+2019-01-12 Timothy Hatcher <[email protected]>
+
+ Have prefers-color-scheme: light always match on macOS versions before Mojave.
+ https://bugs.webkit.org/show_bug.cgi?id=191655
+ rdar://problem/46074680
+
+ Reviewed by Megan Gardner.
+
+ * TestWebKitAPI/Configurations/FeatureDefines.xcconfig: ENABLE_DARK_MODE_CSS_macosx for all OS versions.
+ * TestWebKitAPI/Tests/WebKit/mac/ForceLightAppearanceInBundle.mm:
+
2019-01-12 Dan Bernstein <[email protected]>
[Cocoa] Avoid importing directly from subumbrella frameworks
Modified: trunk/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig (239903 => 239904)
--- trunk/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig 2019-01-13 05:54:06 UTC (rev 239904)
@@ -113,8 +113,7 @@
ENABLE_CUSTOM_SCHEME_HANDLER = ;
ENABLE_DARK_MODE_CSS = $(ENABLE_DARK_MODE_CSS_$(WK_PLATFORM_NAME));
-ENABLE_DARK_MODE_CSS_macosx = $(ENABLE_DARK_MODE_CSS$(WK_MACOS_1014));
-ENABLE_DARK_MODE_CSS_MACOS_SINCE_1014 = ENABLE_DARK_MODE_CSS;
+ENABLE_DARK_MODE_CSS_macosx = ENABLE_DARK_MODE_CSS;
ENABLE_DASHBOARD_SUPPORT = $(ENABLE_DASHBOARD_SUPPORT_$(WK_PLATFORM_NAME));
ENABLE_DASHBOARD_SUPPORT_macosx = ENABLE_DASHBOARD_SUPPORT;
Modified: trunk/Tools/TestWebKitAPI/Tests/WebKit/mac/ForceLightAppearanceInBundle.mm (239903 => 239904)
--- trunk/Tools/TestWebKitAPI/Tests/WebKit/mac/ForceLightAppearanceInBundle.mm 2019-01-12 21:28:15 UTC (rev 239903)
+++ trunk/Tools/TestWebKitAPI/Tests/WebKit/mac/ForceLightAppearanceInBundle.mm 2019-01-13 05:54:06 UTC (rev 239904)
@@ -25,7 +25,7 @@
#include "config.h"
-#if ENABLE(DARK_MODE_CSS) && WK_HAVE_C_SPI
+#if ENABLE(DARK_MODE_CSS) && HAVE(OS_DARK_MODE_SUPPORT) && WK_HAVE_C_SPI
#include "PlatformUtilities.h"
#include "PlatformWebView.h"