WebKit Bugzilla
Attachment 343188 Details for
Bug 186866
: Recalc styles every time defaultAppearance changes
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-186866-20180620163210.patch (text/plain), 7.12 KB, created by
Timothy Hatcher
on 2018-06-20 16:32:10 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Timothy Hatcher
Created:
2018-06-20 16:32:10 PDT
Size:
7.12 KB
patch
obsolete
>Subversion Revision: 233023 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index a456a0dc1f6ad80a6ec578f1c9b8cfd2bd625586..5c7ba6b8a61578afdd2594af3cec6b9cc961e8c4 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,18 @@ >+2018-06-20 Timothy Hatcher <timothy@apple.com> >+ >+ Recalc styles every time defaultAppearance changes. >+ >+ https://bugs.webkit.org/show_bug.cgi?id=186866 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * page/Page.cpp: >+ (WebCore::Page::setUseSystemAppearance): Added. Recalc styles and update system colors. >+ (WebCore::Page::setDefaultAppearance): Added. Ditto. >+ * page/Page.h: >+ (WebCore::Page::setUseSystemAppearance): Deleted impl. >+ (WebCore::Page::setDefaultAppearance): Deleted impl. >+ > 2018-06-20 Wenson Hsieh <wenson_hsieh@apple.com> > > Unreviewed, fix the watchOS build after r233016. >diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog >index 600100b378ad29a1b8148fd0345f905c80b0016f..30c5cd303353e32ad66795786bedce519711c3c4 100644 >--- a/Source/WebKit/ChangeLog >+++ b/Source/WebKit/ChangeLog >@@ -1,3 +1,16 @@ >+2018-06-20 Timothy Hatcher <timothy@apple.com> >+ >+ Recalc styles every time defaultAppearance changes. >+ >+ https://bugs.webkit.org/show_bug.cgi?id=186866 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * UIProcess/WebPageProxy.cpp: >+ (WebKit::WebPageProxy::setDefaultAppearance): >+ * WebProcess/WebPage/WebPage.cpp: >+ (WebKit::WebPage::setDefaultAppearance): >+ > 2018-06-20 Megan Gardner <megan_gardner@apple.com> > > Restrict Selection in contenteditable the extent of that contenteditable >diff --git a/Source/WebKitLegacy/mac/ChangeLog b/Source/WebKitLegacy/mac/ChangeLog >index bf9618b5d4c142cbf585982f3d94c944d2f18554..d4d85488736015c3764d18160965ca64d40d1203 100644 >--- a/Source/WebKitLegacy/mac/ChangeLog >+++ b/Source/WebKitLegacy/mac/ChangeLog >@@ -1,3 +1,16 @@ >+2018-06-20 Timothy Hatcher <timothy@apple.com> >+ >+ Recalc styles every time defaultAppearance changes. >+ >+ https://bugs.webkit.org/show_bug.cgi?id=186866 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * WebView/WebView.mm: >+ (-[WebView _updateDefaultAppearance]): >+ (-[WebView _setUseSystemAppearance:]): >+ (-[WebView _useSystemAppearance]): >+ > 2018-06-12 Darin Adler <darin@apple.com> > > [Cocoa] Make some RetainPtr refinements to get more ready for ARC >diff --git a/Source/WebCore/page/Page.cpp b/Source/WebCore/page/Page.cpp >index 59a7876dd2bcb00ef667dd2dac5f4288b682050b..53f3b0e386c639427d4b36cf23ad5a2238afeb05 100644 >--- a/Source/WebCore/page/Page.cpp >+++ b/Source/WebCore/page/Page.cpp >@@ -2369,6 +2369,17 @@ void Page::setUnobscuredSafeAreaInsets(const FloatBoxExtent& insets) > } > } > >+void Page::setUseSystemAppearance(bool useSystemAppearance) >+{ >+ if (m_useSystemAppearance == useSystemAppearance) >+ return; >+ >+ m_useSystemAppearance = useSystemAppearance; >+ >+ RenderTheme::singleton().platformColorsDidChange(); >+ setNeedsRecalcStyleInAllFrames(); >+} >+ > bool Page::defaultAppearance() const > { > FrameView* view = mainFrame().view(); >@@ -2377,6 +2388,17 @@ bool Page::defaultAppearance() const > return m_defaultAppearance; > } > >+void Page::setDefaultAppearance(bool defaultAppearance) >+{ >+ // Don't return early, even if m_defaultAppearance == defaultAppearance. >+ // The system appearance might have changed under us, like for accessability. >+ >+ m_defaultAppearance = defaultAppearance; >+ >+ RenderTheme::singleton().platformColorsDidChange(); >+ setNeedsRecalcStyleInAllFrames(); >+} >+ > void Page::setFullscreenInsetTop(double inset) > { > for (Frame* frame = &mainFrame(); frame; frame = frame->tree().traverseNext()) { >diff --git a/Source/WebCore/page/Page.h b/Source/WebCore/page/Page.h >index 6b8482ad23e887f7d05561c075cf3b6b8be814b0..022377d378749c92dfa8f84f10f8314a8fdcaf2e 100644 >--- a/Source/WebCore/page/Page.h >+++ b/Source/WebCore/page/Page.h >@@ -338,12 +338,12 @@ public: > bool enclosedInScrollableAncestorView() const { return m_enclosedInScrollableAncestorView; } > void setEnclosedInScrollableAncestorView(bool f) { m_enclosedInScrollableAncestorView = f; } > #endif >- >+ > bool useSystemAppearance() const { return m_useSystemAppearance; } >- void setUseSystemAppearance(bool a) { m_useSystemAppearance = a; } >+ WEBCORE_EXPORT void setUseSystemAppearance(bool); > > bool defaultAppearance() const; >- void setDefaultAppearance(bool a) { m_defaultAppearance = a; } >+ WEBCORE_EXPORT void setDefaultAppearance(bool); > > #if ENABLE(TEXT_AUTOSIZING) > float textAutosizingWidth() const { return m_textAutosizingWidth; } >diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp >index b9af1d6bff9884bdda6040ce7980761628fc1899..286e1887f9bfc70d235ef84e3f7aa0a9eda5dbe5 100644 >--- a/Source/WebKit/UIProcess/WebPageProxy.cpp >+++ b/Source/WebKit/UIProcess/WebPageProxy.cpp >@@ -7303,10 +7303,10 @@ void WebPageProxy::setDefaultAppearance(bool defaultAppearance) > { > if (!isValid()) > return; >- >- if (defaultAppearance == m_defaultAppearance) >- return; >- >+ >+ // Don't return early, even if m_defaultAppearance == defaultAppearance. >+ // The system appearance might have changed under us, like for accessability. >+ > m_defaultAppearance = defaultAppearance; > m_process->send(Messages::WebPage::SetDefaultAppearance(defaultAppearance), m_pageID); > } >diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >index 43bd0c08708042f4505165744b85446d886e6ee7..2a8c3215240a925b01fde7780344dd048cb434fb 100644 >--- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp >+++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp >@@ -4193,12 +4193,10 @@ void WebPage::setUseSystemAppearance(bool useSystemAppearance) > { > corePage()->setUseSystemAppearance(useSystemAppearance); > } >- >+ > void WebPage::setDefaultAppearance(bool defaultAppearance) > { > corePage()->setDefaultAppearance(defaultAppearance); >- RenderTheme::singleton().platformColorsDidChange(); >- corePage()->setNeedsRecalcStyleInAllFrames(); > } > #endif > >diff --git a/Source/WebKitLegacy/mac/WebView/WebView.mm b/Source/WebKitLegacy/mac/WebView/WebView.mm >index 795e78f8388fac89b71eacc6b4e28936c8ec474a..aca5f84e98951bf86552cde6b103a1d1db95f3b7 100644 >--- a/Source/WebKitLegacy/mac/WebView/WebView.mm >+++ b/Source/WebKitLegacy/mac/WebView/WebView.mm >@@ -5288,23 +5288,19 @@ - (bool)_defaultAppearance > - (void)_updateDefaultAppearance > { > _private->page->setDefaultAppearance([self _defaultAppearance]); >- RenderTheme::singleton().platformColorsDidChange(); >- _private->page->setNeedsRecalcStyleInAllFrames(); > } > > - (void)_setUseSystemAppearance:(BOOL)useSystemAppearance > { >- if (auto page = _private->page) { >- page->setUseSystemAppearance(useSystemAppearance); >- [self _updateDefaultAppearance]; >- } >+ if (_private && _private->page) >+ _private->page->setUseSystemAppearance(useSystemAppearance); > } > > - (BOOL)_useSystemAppearance > { > if (!_private->page) > return NO; >- >+ > return _private->page->useSystemAppearance(); > } >
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 186866
:
343188
|
343196
|
343253
|
343342
|
343345