Changeset 245072 in webkit
- Timestamp:
- May 8, 2019 3:24:56 PM (5 years ago)
- Location:
- trunk/Source
- Files:
-
- 25 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r245068 r245072 1 2019-05-08 Timothy Hatcher <timothy@apple.com> 2 3 Add plumbing for inactive system colors in RenderTheme cache. 4 https://bugs.webkit.org/show_bug.cgi?id=197699 5 rdar://problem/49406936 6 7 Reviewed by Tim Horton. 8 9 * css/StyleColor.h: 10 * page/Page.cpp: 11 (WebCore::Page::effectiveAppearanceDidChange): Renamed from setUseDarkAppearance. 12 * page/Page.h: 13 (WebCore::Page::useInactiveAppearance const): 14 * rendering/RenderTheme.cpp: 15 (WebCore::RenderTheme::purgeCaches): 16 (WebCore::RenderTheme::platformColorsDidChange): 17 (WebCore::RenderTheme::colorCache const): 18 * rendering/RenderTheme.h: 19 * testing/InternalSettings.cpp: 20 (WebCore::InternalSettings::setUseDarkAppearanceInternal): 21 1 22 2019-05-08 Robin Morisset <rmorisset@apple.com> 2 23 -
trunk/Source/WebCore/css/StyleColor.h
r233552 r245072 55 55 ForVisitedLink = 1 << 0, 56 56 UseSystemAppearance = 1 << 1, 57 UseDarkAppearance = 1 << 2 57 UseDarkAppearance = 1 << 2, 58 UseInactiveAppearance = 1 << 3 58 59 }; 59 60 -
trunk/Source/WebCore/page/Page.cpp
r244998 r245072 2727 2727 } 2728 2728 2729 void Page:: setUseDarkAppearance(bool value)2729 void Page::effectiveAppearanceDidChange(bool useDarkAppearance, bool useInactiveAppearance) 2730 2730 { 2731 2731 #if HAVE(OS_DARK_MODE_SUPPORT) 2732 if (m_useDarkAppearance == value) 2733 return; 2734 2735 m_useDarkAppearance = value; 2736 2737 InspectorInstrumentation::defaultAppearanceDidChange(*this, value); 2732 if (m_useDarkAppearance == useDarkAppearance && m_useInactiveAppearance == useInactiveAppearance) 2733 return; 2734 2735 m_useDarkAppearance = useDarkAppearance; 2736 m_useInactiveAppearance = useInactiveAppearance; 2737 2738 InspectorInstrumentation::defaultAppearanceDidChange(*this, useDarkAppearance); 2738 2739 2739 2740 appearanceDidChange(); 2740 2741 #else 2741 UNUSED_PARAM(value); 2742 UNUSED_PARAM(useDarkAppearance); 2743 2744 if (m_useInactiveAppearance == useInactiveAppearance) 2745 return; 2746 2747 m_useInactiveAppearance = useInactiveAppearance; 2748 2749 appearanceDidChange(); 2742 2750 #endif 2743 2751 } -
trunk/Source/WebCore/page/Page.h
r244998 r245072 381 381 382 382 WEBCORE_EXPORT bool useDarkAppearance() const; 383 WEBCORE_EXPORT void setUseDarkAppearance(bool); 383 bool useInactiveAppearance() const { return m_useInactiveAppearance; } 384 WEBCORE_EXPORT void effectiveAppearanceDidChange(bool useDarkAppearance, bool useInactiveAppearance); 384 385 bool defaultUseDarkAppearance() const { return m_useDarkAppearance; } 385 386 void setUseDarkAppearanceOverride(Optional<bool>); … … 835 836 836 837 bool m_useSystemAppearance { false }; 838 bool m_useInactiveAppearance { false }; 837 839 bool m_useDarkAppearance { false }; 838 840 Optional<bool> m_useDarkAppearanceOverride; -
trunk/Source/WebCore/rendering/RenderTheme.cpp
r242308 r245072 1213 1213 void RenderTheme::purgeCaches() 1214 1214 { 1215 m_colorCache = ColorCache(); 1216 m_darkColorCache = ColorCache(); 1215 m_colorCacheMap.clear(); 1217 1216 } 1218 1217 1219 1218 void RenderTheme::platformColorsDidChange() 1220 1219 { 1221 m_colorCache = ColorCache(); 1222 m_darkColorCache = ColorCache(); 1220 m_colorCacheMap.clear(); 1223 1221 1224 1222 Page::updateStyleForAllPagesAfterGlobalChangeInEnvironment(); … … 1227 1225 auto RenderTheme::colorCache(OptionSet<StyleColor::Options> options) const -> ColorCache& 1228 1226 { 1229 if (options.contains(StyleColor::Options::UseDarkAppearance)) 1230 return m_darkColorCache; 1231 return m_colorCache; 1227 auto optionsIgnoringVisitedLink = options; 1228 optionsIgnoringVisitedLink.remove(StyleColor::Options::ForVisitedLink); 1229 1230 return m_colorCacheMap.ensure(optionsIgnoringVisitedLink.toRaw(), [] { 1231 return ColorCache(); 1232 }).iterator->value; 1232 1233 } 1233 1234 -
trunk/Source/WebCore/rendering/RenderTheme.h
r240628 r245072 442 442 443 443 private: 444 mutable ColorCache m_colorCache; 445 mutable ColorCache m_darkColorCache; 444 mutable HashMap<uint8_t, ColorCache, DefaultHash<uint8_t>::Hash, WTF::UnsignedWithZeroKeyHashTraits<uint8_t>> m_colorCacheMap; 446 445 }; 447 446 -
trunk/Source/WebCore/testing/InternalSettings.cpp
r245062 r245072 549 549 #endif 550 550 ASSERT(m_page); 551 m_page-> setUseDarkAppearance(useDarkAppearance);551 m_page->effectiveAppearanceDidChange(useDarkAppearance, m_page->useInactiveAppearance()); 552 552 } 553 553 -
trunk/Source/WebKit/ChangeLog
r245069 r245072 1 2019-05-08 Timothy Hatcher <timothy@apple.com> 2 3 Add plumbing for inactive system colors in RenderTheme cache. 4 https://bugs.webkit.org/show_bug.cgi?id=197699 5 rdar://problem/49406936 6 7 Reviewed by Tim Horton. 8 9 * Shared/WebPageCreationParameters.cpp: 10 (WebKit::WebPageCreationParameters::encode const): 11 (WebKit::WebPageCreationParameters::decode): 12 * Shared/WebPageCreationParameters.h: 13 * UIProcess/Cocoa/WebViewImpl.h: 14 * UIProcess/Cocoa/WebViewImpl.mm: 15 (WebKit::WebViewImpl::effectiveAppearanceIsInactive): 16 * UIProcess/PageClient.h: 17 (WebKit::PageClient::effectiveAppearanceIsInactive const): 18 * UIProcess/WebPageProxy.cpp: 19 (WebKit::WebPageProxy::creationParameters): 20 (WebKit::WebPageProxy::useInactiveAppearance const): 21 (WebKit::WebPageProxy::effectiveAppearanceDidChange): 22 * UIProcess/WebPageProxy.h: 23 * UIProcess/mac/PageClientImplMac.h: 24 * UIProcess/mac/PageClientImplMac.mm: 25 (WebKit::PageClientImpl::effectiveAppearanceIsInactive const): 26 * WebProcess/InjectedBundle/API/c/WKBundlePage.cpp: 27 (WKBundlePageSetUseDarkAppearance): 28 * WebProcess/WebPage/WebPage.cpp: 29 (WebKit::m_shrinkToFitContentTimer): 30 (WebKit::WebPage::effectiveAppearanceDidChange): Renamed from setUseDarkAppearance. 31 * WebProcess/WebPage/WebPage.h: 32 * WebProcess/WebPage/WebPage.messages.in: 33 * WebProcess/WebPage/gtk/WebPageGtk.cpp: 34 (WebKit::WebPage::effectiveAppearanceDidChange): Renamed from setUseDarkAppearance. 35 1 36 2019-05-08 Chris Dumez <cdumez@apple.com> 2 37 -
trunk/Source/WebKit/Shared/WebPageCreationParameters.cpp
r244151 r245072 78 78 encoder << isProcessSwap; 79 79 encoder << useDarkAppearance; 80 encoder << useInactiveAppearance; 80 81 81 82 #if PLATFORM(MAC) … … 248 249 if (!decoder.decode(parameters.useDarkAppearance)) 249 250 return WTF::nullopt; 251 if (!decoder.decode(parameters.useInactiveAppearance)) 252 return WTF::nullopt; 250 253 251 254 #if PLATFORM(MAC) -
trunk/Source/WebKit/Shared/WebPageCreationParameters.h
r244151 r245072 137 137 138 138 bool useDarkAppearance { false }; 139 bool useInactiveAppearance { false }; 139 140 140 141 #if PLATFORM(MAC) -
trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.h
r242840 r245072 599 599 void effectiveAppearanceDidChange(); 600 600 bool effectiveAppearanceIsDark(); 601 bool effectiveAppearanceIsInactive(); 601 602 602 603 void takeFocus(WebCore::FocusDirection); -
trunk/Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm
r244920 r245072 5317 5317 } 5318 5318 5319 bool WebViewImpl::effectiveAppearanceIsInactive() 5320 { 5321 // FIXME: Use the window isKeyWindow state or view first responder status? 5322 return false; 5323 } 5324 5319 5325 } // namespace WebKit 5320 5326 -
trunk/Source/WebKit/UIProcess/PageClient.h
r244559 r245072 328 328 329 329 virtual bool effectiveAppearanceIsDark() const { return false; } 330 virtual bool effectiveAppearanceIsInactive() const { return false; } 330 331 331 332 virtual void enterAcceleratedCompositingMode(const LayerTreeContext&) = 0; -
trunk/Source/WebKit/UIProcess/WebPageProxy.cpp
r245062 r245072 7106 7106 parameters.controlledByAutomation = m_controlledByAutomation; 7107 7107 parameters.useDarkAppearance = useDarkAppearance(); 7108 parameters.useInactiveAppearance = useInactiveAppearance(); 7108 7109 #if PLATFORM(MAC) 7109 7110 parameters.colorSpace = pageClient().colorSpace(); … … 8593 8594 } 8594 8595 8596 bool WebPageProxy::useInactiveAppearance() const 8597 { 8598 return pageClient().effectiveAppearanceIsInactive(); 8599 } 8600 8595 8601 void WebPageProxy::effectiveAppearanceDidChange() 8596 8602 { … … 8598 8604 return; 8599 8605 8600 m_process->send(Messages::WebPage:: SetUseDarkAppearance(useDarkAppearance()), m_pageID);8606 m_process->send(Messages::WebPage::EffectiveAppearanceDidChange(useDarkAppearance(), useInactiveAppearance()), m_pageID); 8601 8607 } 8602 8608 -
trunk/Source/WebKit/UIProcess/WebPageProxy.h
r245062 r245072 944 944 void effectiveAppearanceDidChange(); 945 945 bool useDarkAppearance() const; 946 bool useInactiveAppearance() const; 946 947 947 948 #if PLATFORM(COCOA) -
trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.h
r243847 r245072 242 242 WebCore::UserInterfaceLayoutDirection userInterfaceLayoutDirection() override; 243 243 bool effectiveAppearanceIsDark() const override; 244 bool effectiveAppearanceIsInactive() const override; 244 245 245 246 #if ENABLE(DRAG_SUPPORT) -
trunk/Source/WebKit/UIProcess/mac/PageClientImplMac.mm
r243847 r245072 945 945 } 946 946 947 bool PageClientImpl::effectiveAppearanceIsInactive() const 948 { 949 return m_impl->effectiveAppearanceIsInactive(); 950 } 951 947 952 void PageClientImpl::takeFocus(WebCore::FocusDirection direction) 948 953 { -
trunk/Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp
r244675 r245072 594 594 WebKit::WebPage* webPage = WebKit::toImpl(pageRef); 595 595 if (WebCore::Page* page = webPage ? webPage->corePage() : nullptr) 596 page-> setUseDarkAppearance(useDarkAppearance);596 page->effectiveAppearanceDidChange(useDarkAppearance, page->useInactiveAppearance()); 597 597 } 598 598 -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r245062 r245072 558 558 setPaginationLineGridEnabled(parameters.paginationLineGridEnabled); 559 559 560 setUseDarkAppearance(parameters.useDarkAppearance);560 effectiveAppearanceDidChange(parameters.useDarkAppearance, parameters.useInactiveAppearance); 561 561 562 562 if (parameters.isEditable) … … 4622 4622 4623 4623 #if !PLATFORM(GTK) 4624 void WebPage:: setUseDarkAppearance(bool useDarkAppearance)4625 { 4626 corePage()-> setUseDarkAppearance(useDarkAppearance);4624 void WebPage::effectiveAppearanceDidChange(bool useDarkAppearance, bool useInactiveAppearance) 4625 { 4626 corePage()->effectiveAppearanceDidChange(useDarkAppearance, useInactiveAppearance); 4627 4627 } 4628 4628 #endif -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.h
r245067 r245072 548 548 #endif 549 549 550 void setUseDarkAppearance(bool);550 void effectiveAppearanceDidChange(bool useDarkAppearance, bool useInactiveAppearance); 551 551 552 552 bool windowIsFocused() const; -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in
r245062 r245072 489 489 #endif 490 490 491 SetUseDarkAppearance(bool useDarkAppearance);491 EffectiveAppearanceDidChange(bool useDarkAppearance, bool useInactiveAppearance); 492 492 493 493 #if PLATFORM(COCOA) -
trunk/Source/WebKit/WebProcess/WebPage/gtk/WebPageGtk.cpp
r244635 r245072 196 196 } 197 197 198 void WebPage:: setUseDarkAppearance(bool useDarkAppearance)198 void WebPage::effectiveAppearanceDidChange(bool useDarkAppearance, bool useInactiveAppearance) 199 199 { 200 200 if (auto* settings = gtk_settings_get_default()) 201 201 g_object_set(settings, "gtk-application-prefer-dark-theme", useDarkAppearance, nullptr); 202 corePage()-> setUseDarkAppearance(useDarkAppearance);202 corePage()->effectiveAppearanceDidChange(useDarkAppearance, useInactiveAppearance); 203 203 } 204 204 -
trunk/Source/WebKitLegacy/mac/ChangeLog
r244932 r245072 1 2019-05-08 Timothy Hatcher <timothy@apple.com> 2 3 Add plumbing for inactive system colors in RenderTheme cache. 4 https://bugs.webkit.org/show_bug.cgi?id=197699 5 rdar://problem/49406936 6 7 Reviewed by Tim Horton. 8 9 * WebView/WebView.mm: 10 (-[WebView _commonInitializationWithFrameName:groupName:]): 11 (-[WebView _setUseDarkAppearance:]): 12 (-[WebView _useInactiveAppearance]): 13 (-[WebView _setUseInactiveAppearance:]): 14 (-[WebView _setUseDarkAppearance:useInactiveAppearance:]): 15 (-[WebView _effectiveAppearanceIsInactive]): 16 (-[WebView viewDidChangeEffectiveAppearance]): 17 * WebView/WebViewPrivate.h: 18 1 19 2019-05-03 Daniel Bates <dabates@apple.com> 2 20 -
trunk/Source/WebKitLegacy/mac/WebView/WebView.mm
r244869 r245072 1590 1590 1591 1591 #if HAVE(OS_DARK_MODE_SUPPORT) && PLATFORM(MAC) 1592 _private->page-> setUseDarkAppearance(self._effectiveAppearanceIsDark);1592 _private->page->effectiveAppearanceDidChange(self._effectiveAppearanceIsDark, self._effectiveAppearanceIsInactive); 1593 1593 #endif 1594 1594 … … 2501 2501 if (!_private || !_private->page) 2502 2502 return; 2503 _private->page->setUseDarkAppearance(useDarkAppearance); 2503 [self _setUseDarkAppearance:useDarkAppearance useInactiveAppearance:_private->page->useInactiveAppearance()]; 2504 } 2505 2506 - (BOOL)_useInactiveAppearance 2507 { 2508 if (!_private || !_private->page) 2509 return NO; 2510 return _private->page->useInactiveAppearance(); 2511 } 2512 2513 - (void)_setUseInactiveAppearance:(BOOL)useInactiveAppearance 2514 { 2515 if (!_private || !_private->page) 2516 return; 2517 [self _setUseDarkAppearance:_private->page->useDarkAppearance() useInactiveAppearance:useInactiveAppearance]; 2518 } 2519 2520 - (void)_setUseDarkAppearance:(BOOL)useDarkAppearance useInactiveAppearance:(BOOL)useInactiveAppearance 2521 { 2522 if (!_private || !_private->page) 2523 return; 2524 _private->page->effectiveAppearanceDidChange(useDarkAppearance, useInactiveAppearance); 2504 2525 } 2505 2526 … … 5331 5352 return [appearance isEqualToString:NSAppearanceNameDarkAqua]; 5332 5353 } 5354 5355 - (bool)_effectiveAppearanceIsInactive 5356 { 5357 // FIXME: Use the window isKeyWindow state or view first responder status? 5358 return false; 5359 } 5333 5360 #endif 5334 5361 … … 5355 5382 return; 5356 5383 5357 _private->page-> setUseDarkAppearance(self._effectiveAppearanceIsDark);5384 _private->page->effectiveAppearanceDidChange(self._effectiveAppearanceIsDark, self._effectiveAppearanceIsInactive); 5358 5385 } 5359 5386 #endif -
trunk/Source/WebKitLegacy/mac/WebView/WebViewPrivate.h
r240948 r245072 324 324 325 325 @property (nonatomic, assign, setter=_setUseDarkAppearance:) BOOL _useDarkAppearance; 326 @property (nonatomic, assign, setter=_setUseInactiveAppearance:) BOOL _useInactiveAppearance; 327 328 - (void)_setUseDarkAppearance:(BOOL)useDarkAppearance useInactiveAppearance:(BOOL)useInactiveAppearance; 326 329 327 330 - (WebInspector *)inspector;
Note: See TracChangeset
for help on using the changeset viewer.