WebKit Bugzilla
Attachment 341997 Details for
Bug 186323
: Clean up LocalDefaultSystemAppearance and prefers-dark-interface media query
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-186323-20180605144326.patch (text/plain), 11.72 KB, created by
Timothy Hatcher
on 2018-06-05 14:43:26 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Timothy Hatcher
Created:
2018-06-05 14:43:26 PDT
Size:
11.72 KB
patch
obsolete
>Subversion Revision: 232513 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 7da680db0ab07b54663a52d5fd589e24d7d1f117..b5315530e44ca497cceda7a1a4c3bbaf6a4cc375 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,22 @@ >+2018-06-05 Timothy Hatcher <timothy@apple.com> >+ >+ Clean up LocalDefaultSystemAppearance and prefers-dark-interface media query >+ >+ https://bugs.webkit.org/show_bug.cgi?id=186323 >+ rdar://problem/38382252 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * css/MediaFeatureNames.h: >+ * css/MediaQueryEvaluator.cpp: >+ (WebCore::prefersDarkInterfaceEvaluate): >+ (WebCore::defaultAppearanceEvaluate): Deleted. >+ * css/MediaQueryExpression.cpp: >+ (WebCore::featureWithValidIdent): >+ (WebCore::isFeatureValidWithoutValue): >+ * platform/mac/LocalDefaultSystemAppearance.mm: >+ (WebCore::LocalDefaultSystemAppearance::LocalDefaultSystemAppearance): >+ > 2018-06-05 Brent Fulgham <bfulgham@apple.com> > > Unreviewed build fix after r232511. >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 5c1e8c05b198ac7901020974bdcaf62c418f7bea..671eccc2ab8f2e71ce80dd7b044d17abade37d12 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,20 @@ >+2018-06-05 Timothy Hatcher <timothy@apple.com> >+ >+ Clean up LocalDefaultSystemAppearance and prefers-dark-interface media query >+ >+ https://bugs.webkit.org/show_bug.cgi?id=186323 >+ rdar://problem/38382252 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * UIProcess/API/Cocoa/WKWebView.mm: >+ (-[WKWebView _defaultAppearance]): >+ * UIProcess/API/mac/WKView.mm: >+ (-[WKView _defaultAppearance]): >+ * UIProcess/Cocoa/WebViewImpl.h: >+ * UIProcess/Cocoa/WebViewImpl.mm: >+ (WebKit::WebViewImpl::useDefaultAppearance): >+ > 2018-06-04 Chris Dumez <cdumez@apple.com> > > Rename "Cross-Origin-Options" HTTP header to "Cross-Origin-Window-Policy" >diff --git a/Source/WebKitLegacy/mac/ChangeLog b/Source/WebKitLegacy/mac/ChangeLog >index b76f32f378872d2bad199b550a302ff9400c83eb..c6bebbcc314576fe46a097df725f57cb04a82110 100644 >--- a/Source/WebKitLegacy/mac/ChangeLog >+++ b/Source/WebKitLegacy/mac/ChangeLog >@@ -1,3 +1,15 @@ >+2018-06-05 Timothy Hatcher <timothy@apple.com> >+ >+ Clean up LocalDefaultSystemAppearance and prefers-dark-interface media query >+ >+ https://bugs.webkit.org/show_bug.cgi?id=186323 >+ rdar://problem/38382252 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * WebView/WebView.mm: >+ (-[WebView _defaultAppearance]): >+ > 2018-06-03 Darin Adler <darin@apple.com> > > Simplify and remove some unused video element code (helpful for ARC-compatibility) >diff --git a/Source/WebCore/css/MediaFeatureNames.h b/Source/WebCore/css/MediaFeatureNames.h >index adbd6f0e5adda9858aa3d5c805c60003e78b87bd..81a66802a914ce0a6035ba24ababea8bb10c6621 100644 >--- a/Source/WebCore/css/MediaFeatureNames.h >+++ b/Source/WebCore/css/MediaFeatureNames.h >@@ -29,13 +29,6 @@ > #define CSS_MEDIAQUERY_DISPLAY_MODE(macro) > #endif > >-#if USE(APPLE_INTERNAL_SDK) >-#import <WebKitAdditions/MediaFeatureNamesAdditions.h> >-#else >-#define DEFAULT_APPEARANCE_MEDIA_QUERY "prefers-default-appearance" >-#endif >- >- > #define CSS_MEDIAQUERY_NAMES_FOR_EACH_MEDIAFEATURE(macro) \ > macro(animation, "-webkit-animation") \ > macro(anyHover, "any-hover") \ >@@ -77,7 +70,7 @@ > macro(monochrome, "monochrome") \ > macro(orientation, "orientation") \ > macro(pointer, "pointer") \ >- macro(defaultAppearance, DEFAULT_APPEARANCE_MEDIA_QUERY) \ >+ macro(prefersDarkInterface, "prefers-dark-interface") \ > macro(prefersReducedMotion, "prefers-reduced-motion") \ > macro(resolution, "resolution") \ > macro(transform2d, "-webkit-transform-2d") \ >diff --git a/Source/WebCore/css/MediaQueryEvaluator.cpp b/Source/WebCore/css/MediaQueryEvaluator.cpp >index 5b7cb06199b8aac1ba1c38111567d0805efcfa51..8c793c2b786903a582c52a08eeab7ccf45354295 100644 >--- a/Source/WebCore/css/MediaQueryEvaluator.cpp >+++ b/Source/WebCore/css/MediaQueryEvaluator.cpp >@@ -713,17 +713,17 @@ static bool anyPointerEvaluate(CSSValue* value, const CSSToLengthConversionData& > return pointerEvaluate(value, cssToLengthConversionData, frame, prefix); > } > >-static bool defaultAppearanceEvaluate(CSSValue* value, const CSSToLengthConversionData&, Frame& frame, MediaFeaturePrefix) >+static bool prefersDarkInterfaceEvaluate(CSSValue* value, const CSSToLengthConversionData&, Frame& frame, MediaFeaturePrefix) > { >- bool defaultAppearance = false; >- >+ bool prefersDarkInterface = false; >+ > if (!frame.page()->defaultAppearance()) >- defaultAppearance = true; >- >+ prefersDarkInterface = true; >+ > if (!value) >- return defaultAppearance; >- >- return downcast<CSSPrimitiveValue>(*value).valueID() == (defaultAppearance ? CSSValuePrefers : CSSValueNoPreference); >+ return prefersDarkInterface; >+ >+ return downcast<CSSPrimitiveValue>(*value).valueID() == (prefersDarkInterface ? CSSValuePrefers : CSSValueNoPreference); > } > > static bool prefersReducedMotionEvaluate(CSSValue* value, const CSSToLengthConversionData&, Frame& frame, MediaFeaturePrefix) >diff --git a/Source/WebCore/css/MediaQueryExpression.cpp b/Source/WebCore/css/MediaQueryExpression.cpp >index 2d8e5f0f3db61bf29d98b6b7a95a7b3f9b3a0ff5..d553392f9491cf067fe0541a6f7386dca11243b7 100644 >--- a/Source/WebCore/css/MediaQueryExpression.cpp >+++ b/Source/WebCore/css/MediaQueryExpression.cpp >@@ -54,7 +54,7 @@ static inline bool featureWithValidIdent(const AtomicString& mediaFeature, const > || mediaFeature == MediaFeatureNames::displayMode > #endif > || mediaFeature == MediaFeatureNames::prefersReducedMotion >- || (mediaFeature == MediaFeatureNames::defaultAppearance && context.useSystemAppearance); >+ || (mediaFeature == MediaFeatureNames::prefersDarkInterface && context.useSystemAppearance); > } > > static inline bool featureWithValidDensity(const String& mediaFeature, const CSSPrimitiveValue& value) >@@ -162,7 +162,7 @@ static inline bool isFeatureValidWithoutValue(const AtomicString& mediaFeature, > || mediaFeature == MediaFeatureNames::invertedColors > || mediaFeature == MediaFeatureNames::pointer > || mediaFeature == MediaFeatureNames::prefersReducedMotion >- || (mediaFeature == MediaFeatureNames::defaultAppearance && context.useSystemAppearance) >+ || (mediaFeature == MediaFeatureNames::prefersDarkInterface && context.useSystemAppearance) > || mediaFeature == MediaFeatureNames::devicePixelRatio > || mediaFeature == MediaFeatureNames::resolution > #if ENABLE(APPLICATION_MANIFEST) >diff --git a/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm b/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm >index 55123091bce5efa194a5a860e96a803787570928..bf9592d68ee681902d9b41ddf5919cb8deea4e42 100644 >--- a/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm >+++ b/Source/WebCore/platform/mac/LocalDefaultSystemAppearance.mm >@@ -31,19 +31,16 @@ > > namespace WebCore { > >-#if USE(APPLE_INTERNAL_SDK) >-#import <WebKitAdditions/LocalDefaultSystemAppearanceAdditions.mm> >-#else >-LocalDefaultSystemAppearance::LocalDefaultSystemAppearance(bool useSystemAppearance, bool) >+LocalDefaultSystemAppearance::LocalDefaultSystemAppearance(bool useSystemAppearance, bool useDefaultAppearance) > { > #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 > m_savedSystemAppearance = [NSAppearance currentAppearance]; >- [NSAppearance setCurrentAppearance:useSystemAppearance ? [NSApp effectiveAppearance] : [NSAppearance appearanceNamed:NSAppearanceNameAqua]]; >+ [NSAppearance setCurrentAppearance:[NSAppearance appearanceNamed:(!useSystemAppearance || useDefaultAppearance ? NSAppearanceNameAqua : NSAppearanceNameDarkAqua)]]; > #else > UNUSED_PARAM(useSystemAppearance); >+ UNUSED_PARAM(useDefaultAppearance); > #endif > } >-#endif > > LocalDefaultSystemAppearance::~LocalDefaultSystemAppearance() > { >diff --git a/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm b/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm >index 0e642a6af483a4705ed87bc0e9775e8bcc5c3c51..1cb60ec25c2274dc825a9b35a6a5426e16532e8e 100644 >--- a/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm >+++ b/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm >@@ -470,11 +470,10 @@ static uint32_t convertSystemLayoutDirection(NSUserInterfaceLayoutDirection dire > return static_cast<uint32_t>(WebCore::UserInterfaceLayoutDirection::LTR); > } > >-#if USE(APPLE_INTERNAL_SDK) >-#import <WebKitAdditions/WebViewAndWKWebViewAdditions.mm> >-#else >-- (bool)_defaultAppearance { return true; } >-#endif >+- (bool)_defaultAppearance >+{ >+ return _impl->useDefaultAppearance(); >+} > > #endif // PLATFORM(MAC) > >diff --git a/Source/WebKit/UIProcess/API/mac/WKView.mm b/Source/WebKit/UIProcess/API/mac/WKView.mm >index 2ff40f42015d78fc976cbd085adf86e80c4697c2..f68e9815c18873e2efa30ef2af981f79891e0cd4 100644 >--- a/Source/WebKit/UIProcess/API/mac/WKView.mm >+++ b/Source/WebKit/UIProcess/API/mac/WKView.mm >@@ -1620,11 +1620,10 @@ - (void)_setShouldSuppressFirstResponderChanges:(BOOL)shouldSuppress > _data->_impl->setShouldSuppressFirstResponderChanges(shouldSuppress); > } > >-#if USE(APPLE_INTERNAL_SDK) >-#import <WebKitAdditions/WebViewAndWKWebViewAdditions.mm> >-#else >-- (bool)_defaultAppearance { return true; } >-#endif >+- (bool)_defaultAppearance >+{ >+ return _data->_impl->useDefaultAppearance(); >+} > > - (void)effectiveAppearanceDidChange > { >diff --git a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h >index 16f53901719b658e87ab877a93aac5335855a999..e3994d3df567c83bf1ba73f95772f3b6ce8372ba 100644 >--- a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h >+++ b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h >@@ -539,6 +539,7 @@ public: > void setUseSystemAppearance(bool); > bool useSystemAppearance(); > void setDefaultAppearance(bool); >+ bool useDefaultAppearance(); > > private: > #if HAVE(TOUCH_BAR) >diff --git a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >index 96b889b07d00a885971dc082f9374d4003f1dbd7..9f1a828e2d4ff7d460606512283af7a807096ae4 100644 >--- a/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >+++ b/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm >@@ -5013,6 +5013,19 @@ bool WebViewImpl::useSystemAppearance() > return m_page->useSystemAppearance(); > } > >+bool WebViewImpl::useDefaultAppearance() >+{ >+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 >+ if (!useSystemAppearance()) >+ return true; >+ >+ NSAppearanceName appearance = [[m_view effectiveAppearance] bestMatchFromAppearancesWithNames:@[ NSAppearanceNameAqua, NSAppearanceNameDarkAqua ]]; >+ return [appearance isEqualToString:NSAppearanceNameAqua]; >+#else >+ return true; >+#endif >+} >+ > void WebViewImpl::setDefaultAppearance(bool defaultAppearance) > { > m_page->setDefaultAppearance(defaultAppearance); >diff --git a/Source/WebKitLegacy/mac/WebView/WebView.mm b/Source/WebKitLegacy/mac/WebView/WebView.mm >index 7875a7ea4164fe67249dc9d499ffc98a17533f9a..0e2f7c27c118b1f3248ea6f001734c9dcb8e612f 100644 >--- a/Source/WebKitLegacy/mac/WebView/WebView.mm >+++ b/Source/WebKitLegacy/mac/WebView/WebView.mm >@@ -5275,12 +5275,18 @@ - (WebEdgeInsets)_unobscuredSafeAreaInsets > return insets; > } > >-#if USE(APPLE_INTERNAL_SDK) >-#import <WebKitAdditions/WebViewAndWKWebViewAdditions.mm> >+- (bool)_defaultAppearance >+{ >+#if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400 >+ if (![self _useSystemAppearance]) >+ return true; >+ >+ NSAppearanceName appearance = [[self effectiveAppearance] bestMatchFromAppearancesWithNames:@[ NSAppearanceNameAqua, NSAppearanceNameDarkAqua ]]; >+ return [appearance isEqualToString:NSAppearanceNameAqua]; > #else >-- (bool)_defaultAppearance { return true; } >+ return true; > #endif >- >+} > > - (void)_updateDefaultAppearance > {
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 186323
: 341997