WebKit Bugzilla
Attachment 358998 Details for
Bug 191655
: Have prefers-color-scheme: light always match on macOS versions before Mojave
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-191655-20190112181802.patch (text/plain), 42.94 KB, created by
Timothy Hatcher
on 2019-01-12 18:18:03 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Timothy Hatcher
Created:
2019-01-12 18:18:03 PST
Size:
42.94 KB
patch
obsolete
>Subversion Revision: 239900 >diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog >index 9c91d169c12b5fa5c1ba7a2d3f17ce31f80431b6..4537901b32b83d3a39ddec41ef7917147adbe3be 100644 >--- a/Source/JavaScriptCore/ChangeLog >+++ b/Source/JavaScriptCore/ChangeLog >@@ -1,3 +1,13 @@ >+2019-01-11 Timothy Hatcher <timothy@apple.com> >+ >+ 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 <yusukesuzuki@slowstart.org> > > Unreviewed, fix scope check assertions >diff --git a/Source/WTF/ChangeLog b/Source/WTF/ChangeLog >index 407a293643adf6cbdcf33f6ad82eb10da3d34743..b89d256e7d78490e86688b77a6383d6a852a9cbb 100644 >--- a/Source/WTF/ChangeLog >+++ b/Source/WTF/ChangeLog >@@ -1,3 +1,13 @@ >+2019-01-11 Timothy Hatcher <timothy@apple.com> >+ >+ 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 <ddkilzer@apple.com> > > Follow-up: WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create(). >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 9baf8cbb65257398247b74e9d5bc57069f04ae02..a926a93f52965a386ae4818f7c40aa61b1e3177b 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,43 @@ >+2019-01-11 Timothy Hatcher <timothy@apple.com> >+ >+ 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 <zalan@apple.com> > > [LFC] Move formatting context creation from FormattingState to LayoutState >diff --git a/Source/WebCore/PAL/ChangeLog b/Source/WebCore/PAL/ChangeLog >index e5e59a6873b9e68b2fdb44070daeacb7f2260bf2..d6338120ffc092d5b65e1c641a07563fd0c07c42 100644 >--- a/Source/WebCore/PAL/ChangeLog >+++ b/Source/WebCore/PAL/ChangeLog >@@ -1,3 +1,13 @@ >+2019-01-11 Timothy Hatcher <timothy@apple.com> >+ >+ 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-11 John Wilander <wilander@apple.com> > > Compile out Web API Statistics Collection >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index e6605cc4f045c553f383b21b2f024d469c15d6c6..d59ce9cf757f884fde6040d9d08b390e5f353b28 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,16 @@ >+2019-01-11 Timothy Hatcher <timothy@apple.com> >+ >+ 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-11 Ryosuke Niwa <rniwa@webkit.org> > > Enable visual viewport API by default >diff --git a/Source/WebKitLegacy/mac/ChangeLog b/Source/WebKitLegacy/mac/ChangeLog >index b47e35a2be5a6e2e33470c37c7938623a38ecd2c..402e0dbcf4bdeed4d0bf21833f3bf70607c7f332 100644 >--- a/Source/WebKitLegacy/mac/ChangeLog >+++ b/Source/WebKitLegacy/mac/ChangeLog >@@ -1,3 +1,15 @@ >+2019-01-11 Timothy Hatcher <timothy@apple.com> >+ >+ 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-11 Ryosuke Niwa <rniwa@webkit.org> > > Enable visual viewport API by default >diff --git a/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig b/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig >index 22481d336bb97ab69afd593499916526c09e3e1e..607339326a98c5398760a7ef9408d0f6b2165c50 100644 >--- a/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig >+++ b/Source/JavaScriptCore/Configurations/FeatureDefines.xcconfig >@@ -113,8 +113,7 @@ ENABLE_CURSOR_VISIBILITY = ENABLE_CURSOR_VISIBILITY; > 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; >diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h >index 8df952e8bed2231558af56c456a2519b559937c6..c8fe6ba767e21b790224e18d9cd4547209f94dd1 100644 >--- a/Source/WTF/wtf/Platform.h >+++ b/Source/WTF/wtf/Platform.h >@@ -1416,6 +1416,10 @@ > #endif > #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 >diff --git a/Source/WebCore/Configurations/FeatureDefines.xcconfig b/Source/WebCore/Configurations/FeatureDefines.xcconfig >index 22481d336bb97ab69afd593499916526c09e3e1e..607339326a98c5398760a7ef9408d0f6b2165c50 100644 >--- a/Source/WebCore/Configurations/FeatureDefines.xcconfig >+++ b/Source/WebCore/Configurations/FeatureDefines.xcconfig >@@ -113,8 +113,7 @@ ENABLE_CURSOR_VISIBILITY = ENABLE_CURSOR_VISIBILITY; > 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; >diff --git a/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig b/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig >index 22481d336bb97ab69afd593499916526c09e3e1e..607339326a98c5398760a7ef9408d0f6b2165c50 100644 >--- a/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig >+++ b/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig >@@ -113,8 +113,7 @@ ENABLE_CURSOR_VISIBILITY = ENABLE_CURSOR_VISIBILITY; > 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; >diff --git a/Source/WebCore/dom/Document.cpp b/Source/WebCore/dom/Document.cpp >index 74fe60763b2bba923a255009ddc7b5b01ca85eba..c7b21da1f5d244a5c0ca9bfd2696d03aa027369f 100644 >--- a/Source/WebCore/dom/Document.cpp >+++ b/Source/WebCore/dom/Document.cpp >@@ -7419,6 +7419,7 @@ bool Document::useSystemAppearance() const > > 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 @@ bool Document::useDarkAppearance(const RenderStyle* style) const > if (supportedColorSchemes.contains(ColorSchemes::Dark)) > return pageUsesDarkAppearance; > #endif >+#else >+ UNUSED_PARAM(style); >+#endif > > return false; > } >diff --git a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp >index 5c1ca92940fadd2eff6fc50732a8d2c39da36de3..74deed538e90f476f42a50b9d78bfa533869d6b0 100644 >--- a/Source/WebCore/inspector/agents/InspectorPageAgent.cpp >+++ b/Source/WebCore/inspector/agents/InspectorPageAgent.cpp >@@ -301,7 +301,7 @@ void InspectorPageAgent::enable(ErrorString&) > 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 > } >diff --git a/Source/WebCore/page/Page.cpp b/Source/WebCore/page/Page.cpp >index e81cb238e17fe15e1409843150ae639ee96d5b5d..da009b552c8388f01f855e5f2e1ecbe96addd6e6 100644 >--- a/Source/WebCore/page/Page.cpp >+++ b/Source/WebCore/page/Page.cpp >@@ -2666,6 +2666,7 @@ void Page::setUseSystemAppearance(bool value) > > void Page::setUseDarkAppearance(bool value) > { >+#if HAVE(OS_DARK_MODE_SUPPORT) > if (m_useDarkAppearance == value) > return; > >@@ -2674,26 +2675,37 @@ void Page::setUseDarkAppearance(bool value) > 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; > 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; > > m_useDarkAppearanceOverride = valueOverride; > > appearanceDidChange(); >+#else >+ UNUSED_PARAM(valueOverride); >+#endif > } > > void Page::setFullscreenInsets(const FloatBoxExtent& insets) >diff --git a/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.h b/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.h >index 1cb1b2b1c16d43930d1911c695e727022eb52567..d99b822d8739340f8719f9ae4b7bef5028ae08c1 100644 >--- a/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.h >+++ b/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.h >@@ -45,7 +45,7 @@ public: > > 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 @@ public: > } > > private: >-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 >+#if HAVE(OS_DARK_MODE_SUPPORT) > RetainPtr<NSAppearance> m_savedSystemAppearance; > bool m_usingDarkAppearance { false }; > #endif >diff --git a/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm b/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm >index 6b6821e69580162623ebb752205e6d921d9f442f..f645fb7f31349edded91092a631e467b3ef07949 100644 >--- a/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm >+++ b/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm >@@ -33,7 +33,7 @@ namespace WebCore { > > 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(bool useDarkAppearanc > > LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance() > { >-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 >+#if HAVE(OS_DARK_MODE_SUPPORT) > [NSAppearance setCurrentAppearance:m_savedSystemAppearance.get()]; > #endif > } >diff --git a/Source/WebCore/platform/mac/ScrollAnimatorMac.mm b/Source/WebCore/platform/mac/ScrollAnimatorMac.mm >index c9143ee222fbc067857424f69934897a429e4266..e0cf5321d6aedc15ead61d8901a227f828710773 100644 >--- a/Source/WebCore/platform/mac/ScrollAnimatorMac.mm >+++ b/Source/WebCore/platform/mac/ScrollAnimatorMac.mm >@@ -527,7 +527,7 @@ - (BOOL)shouldUseLayerPerPartForScrollerImp:(NSScrollerImp *)scrollerImp > return _scrollbar->supportsUpdateOnSecondaryThread(); > } > >-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 >+#if HAVE(OS_DARK_MODE_SUPPORT) > - (NSAppearance *)effectiveAppearanceForScrollerImp:(NSScrollerImp *)scrollerImp > { > UNUSED_PARAM(scrollerImp); >diff --git a/Source/WebCore/rendering/RenderThemeMac.mm b/Source/WebCore/rendering/RenderThemeMac.mm >index 9b80c02a2497750b0bdc238011e59731c00b5830..afee9d016910237c2a96c9e11a1fcb0ff54d9e22 100644 >--- a/Source/WebCore/rendering/RenderThemeMac.mm >+++ b/Source/WebCore/rendering/RenderThemeMac.mm >@@ -162,7 +162,7 @@ @implementation WebCoreTextFieldCell > > - (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 @@ - (void)drawWithFrame:(NSRect)cellFrame inView:(__unused NSView *)controlView > > // 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::platformActiveSelectionBackgroundColor(OptionSet<StyleColo > > 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::platformActiveSelectionForegroundColor(OptionSet<StyleColo > > 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::platformInactiveSelectionForegroundColor(OptionSet<StyleCo > > 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::platformActiveListBoxSelectionBackgroundColor(OptionSet<St > > 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::platformActiveListBoxSelectionForegroundColor(OptionSet<St > > 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 @@ Color RenderThemeMac::systemColor(CSSValueID cssValueID, OptionSet<StyleColor::O > 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 @@ Color RenderThemeMac::systemColor(CSSValueID cssValueID, OptionSet<StyleColor::O > 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 @@ Color RenderThemeMac::systemColor(CSSValueID cssValueID, OptionSet<StyleColor::O > 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 @@ Color RenderThemeMac::systemColor(CSSValueID cssValueID, OptionSet<StyleColor::O > 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 @@ Color RenderThemeMac::systemColor(CSSValueID cssValueID, OptionSet<StyleColor::O > 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 @@ Color RenderThemeMac::systemColor(CSSValueID cssValueID, OptionSet<StyleColor::O > 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 @@ Color RenderThemeMac::systemColor(CSSValueID cssValueID, OptionSet<StyleColor::O > } > > 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]; >diff --git a/Source/WebKit/Configurations/FeatureDefines.xcconfig b/Source/WebKit/Configurations/FeatureDefines.xcconfig >index 22481d336bb97ab69afd593499916526c09e3e1e..607339326a98c5398760a7ef9408d0f6b2165c50 100644 >--- a/Source/WebKit/Configurations/FeatureDefines.xcconfig >+++ b/Source/WebKit/Configurations/FeatureDefines.xcconfig >@@ -113,8 +113,7 @@ ENABLE_CURSOR_VISIBILITY = ENABLE_CURSOR_VISIBILITY; > 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; >diff --git a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >index 771972b1ac81e9665b7ce4a6a8c3d60dc356b957..da2e32f2548f1d56a60b6560adbef569376661d5 100644 >--- a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >+++ b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >@@ -5328,7 +5328,7 @@ void WebViewImpl::effectiveAppearanceDidChange() > > 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 >diff --git a/Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollerMac.mm b/Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollerMac.mm >index d964f573d100489983caff8cd24a8402346156e9..daf9c9bc59c16438e9ff9ca8e83acff2a4c6b2b8 100644 >--- a/Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollerMac.mm >+++ b/Source/WebKit/UIProcess/RemoteLayerTree/mac/ScrollerMac.mm >@@ -195,7 +195,7 @@ - (BOOL)shouldUseLayerPerPartForScrollerImp:(NSScrollerImp *)scrollerImp > return true; > } > >-#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 >+#if HAVE(OS_DARK_MODE_SUPPORT) > - (NSAppearance *)effectiveAppearanceForScrollerImp:(NSScrollerImp *)scrollerImp > { > UNUSED_PARAM(scrollerImp); >diff --git a/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig b/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig >index 22481d336bb97ab69afd593499916526c09e3e1e..607339326a98c5398760a7ef9408d0f6b2165c50 100644 >--- a/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig >+++ b/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig >@@ -113,8 +113,7 @@ ENABLE_CURSOR_VISIBILITY = ENABLE_CURSOR_VISIBILITY; > 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; >diff --git a/Source/WebKitLegacy/mac/WebView/WebView.mm b/Source/WebKitLegacy/mac/WebView/WebView.mm >index 9397866133eae82aa773bbae0f3cf5f4fcf3490c..ab838453b32464e51e12a025360feb7b23859cfd 100644 >--- a/Source/WebKitLegacy/mac/WebView/WebView.mm >+++ b/Source/WebKitLegacy/mac/WebView/WebView.mm >@@ -5297,7 +5297,7 @@ - (WebEdgeInsets)_unobscuredSafeAreaInsets > > - (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 >diff --git a/Tools/ChangeLog b/Tools/ChangeLog >index 252239f5273c4652132a2366a016d2be15a6efed..6e5349058c67ba52b086c9bfbf08c237283453a5 100644 >--- a/Tools/ChangeLog >+++ b/Tools/ChangeLog >@@ -1,3 +1,14 @@ >+2019-01-11 Timothy Hatcher <timothy@apple.com> >+ >+ 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-11 John Wilander <wilander@apple.com> > > Compile out Web API Statistics Collection >diff --git a/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig b/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig >index 22481d336bb97ab69afd593499916526c09e3e1e..607339326a98c5398760a7ef9408d0f6b2165c50 100644 >--- a/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig >+++ b/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig >@@ -113,8 +113,7 @@ ENABLE_CURSOR_VISIBILITY = ENABLE_CURSOR_VISIBILITY; > 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; >diff --git a/Tools/TestWebKitAPI/Tests/WebKit/mac/ForceLightAppearanceInBundle.mm b/Tools/TestWebKitAPI/Tests/WebKit/mac/ForceLightAppearanceInBundle.mm >index b02bd5669fc64a90a9393f0bdaa596affee4f0c3..99ec8d07806d76c2dcd7fa8b6dd9df4c9d1b1a55 100644 >--- a/Tools/TestWebKitAPI/Tests/WebKit/mac/ForceLightAppearanceInBundle.mm >+++ b/Tools/TestWebKitAPI/Tests/WebKit/mac/ForceLightAppearanceInBundle.mm >@@ -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" >diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog >index 71f9b15d9d6a6edd722dc6820e89b5f941dffa7d..c40df6e77f6673af1eb4fa92acb8a6e8fee1d9c6 100644 >--- a/LayoutTests/ChangeLog >+++ b/LayoutTests/ChangeLog >@@ -1,3 +1,19 @@ >+2019-01-11 Timothy Hatcher <timothy@apple.com> >+ >+ 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 <wilander@apple.com> > > Compile out Web API Statistics Collection >diff --git a/LayoutTests/css-dark-mode/older-systems/prefers-color-scheme-expected.txt b/LayoutTests/css-dark-mode/older-systems/prefers-color-scheme-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..4cfbac7ca8f478f251944618d39624230271ccbb >--- /dev/null >+++ b/LayoutTests/css-dark-mode/older-systems/prefers-color-scheme-expected.txt >@@ -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 >+ >diff --git a/LayoutTests/css-dark-mode/older-systems/prefers-color-scheme.html b/LayoutTests/css-dark-mode/older-systems/prefers-color-scheme.html >new file mode 100644 >index 0000000000000000000000000000000000000000..e970c3eb95c121059733317b12094a3220d260ac >--- /dev/null >+++ b/LayoutTests/css-dark-mode/older-systems/prefers-color-scheme.html >@@ -0,0 +1,72 @@ >+<!DOCTYPE html> >+ >+<!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] --> >+ >+<script src="../../resources/testharness.js"></script> >+<script src="../../resources/testharnessreport.js"></script> >+ >+<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> >diff --git a/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css-expected.txt b/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..a66c52dcb5879389d1e1c69a6aae014f40800982 >--- /dev/null >+++ b/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css-expected.txt >@@ -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 >+ >diff --git a/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css.html b/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css.html >new file mode 100644 >index 0000000000000000000000000000000000000000..1dc31b411bba3e935e6a6e842fcf20f0b5ad6c6b >--- /dev/null >+++ b/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-css.html >@@ -0,0 +1,105 @@ >+<!DOCTYPE html> >+ >+<!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] --> >+ >+<script src="../../resources/testharness.js"></script> >+<script src="../../resources/testharnessreport.js"></script> >+ >+<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> >diff --git a/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-expected.txt b/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-expected.txt >new file mode 100644 >index 0000000000000000000000000000000000000000..274122b301912412174120387be75a37d6e5a017 >--- /dev/null >+++ b/LayoutTests/css-dark-mode/older-systems/supported-color-schemes-expected.txt >@@ -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 >+ >diff --git a/LayoutTests/css-dark-mode/older-systems/supported-color-schemes.html b/LayoutTests/css-dark-mode/older-systems/supported-color-schemes.html >new file mode 100644 >index 0000000000000000000000000000000000000000..d1a7267e97b5433fdd0ef8af1e52b74b8e4b6dbf >--- /dev/null >+++ b/LayoutTests/css-dark-mode/older-systems/supported-color-schemes.html >@@ -0,0 +1,78 @@ >+<!DOCTYPE html> >+ >+<!-- webkit-test-runner [ experimental:DarkModeCSSEnabled=true ] --> >+ >+<script src="../../resources/testharness.js"></script> >+<script src="../../resources/testharnessreport.js"></script> >+ >+<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> >diff --git a/LayoutTests/platform/mac/TestExpectations b/LayoutTests/platform/mac/TestExpectations >index efcda9f19277daefa2f85e9f7425a44e2051e453..f896ddfdcad18dc155924d5e1c0bcf8ab4f1b9d2 100644 >--- a/LayoutTests/platform/mac/TestExpectations >+++ b/LayoutTests/platform/mac/TestExpectations >@@ -1767,8 +1767,12 @@ webkit.org/b/187393 imported/w3c/web-platform-tests/2dcontext/imagebitmap/create > > # 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 ]
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 191655
:
358967
|
358982
|
358992
|
358993
|
358997
| 358998