Title: [201332] trunk/Source/WebCore
- Revision
- 201332
- Author
- [email protected]
- Date
- 2016-05-24 09:46:44 -0700 (Tue, 24 May 2016)
Log Message
REGRESSION (r196629): Safari can get into a state where switching Reader theme doesn't apply to the webpage
https://bugs.webkit.org/show_bug.cgi?id=158018
<rdar://problem/24732776>
Reviewed by Darin Adler.
When a tab goes to background we clear the style resolver. It is recreated lazily when the tab is again active.
However style invalidation code tests if the style resolver exists and skips the invalidation if it doesn't.
With sufficiently simple document (like in Reader) we may never create one for other reasons and so style
invalidation doesn't work.
No test, don't know how to make one.
* dom/Element.cpp:
(WebCore::Element::needsStyleInvalidation):
Remove styleResolverIfExists() check and do the invalidation normally.
Instead check for forced style recalc. If there is one pending we don't need to bother with invalidation.
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (201331 => 201332)
--- trunk/Source/WebCore/ChangeLog 2016-05-24 14:33:53 UTC (rev 201331)
+++ trunk/Source/WebCore/ChangeLog 2016-05-24 16:46:44 UTC (rev 201332)
@@ -1,3 +1,24 @@
+2016-05-24 Antti Koivisto <[email protected]>
+
+ REGRESSION (r196629): Safari can get into a state where switching Reader theme doesn't apply to the webpage
+ https://bugs.webkit.org/show_bug.cgi?id=158018
+ <rdar://problem/24732776>
+
+ Reviewed by Darin Adler.
+
+ When a tab goes to background we clear the style resolver. It is recreated lazily when the tab is again active.
+ However style invalidation code tests if the style resolver exists and skips the invalidation if it doesn't.
+ With sufficiently simple document (like in Reader) we may never create one for other reasons and so style
+ invalidation doesn't work.
+
+ No test, don't know how to make one.
+
+ * dom/Element.cpp:
+ (WebCore::Element::needsStyleInvalidation):
+
+ Remove styleResolverIfExists() check and do the invalidation normally.
+ Instead check for forced style recalc. If there is one pending we don't need to bother with invalidation.
+
2016-05-24 Yusuke Suzuki <[email protected]>
Unreviewed, updating binding test results
Modified: trunk/Source/WebCore/dom/Element.cpp (201331 => 201332)
--- trunk/Source/WebCore/dom/Element.cpp 2016-05-24 14:33:53 UTC (rev 201331)
+++ trunk/Source/WebCore/dom/Element.cpp 2016-05-24 16:46:44 UTC (rev 201332)
@@ -2527,7 +2527,7 @@
return false;
if (styleChangeType() >= FullStyleChange)
return false;
- if (!document().styleResolverIfExists())
+ if (document().hasPendingForcedStyleRecalc())
return false;
return true;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes