Title: [186426] releases/WebKitGTK/webkit-2.8/Source/WebCore
Revision
186426
Author
[email protected]
Date
2015-07-07 02:16:11 -0700 (Tue, 07 Jul 2015)

Log Message

Merge r185858 - ASSERT(!m_zOrderListsDirty) when mousing over web view with incremental rendering suppressed
https://bugs.webkit.org/show_bug.cgi?id=146225

Reviewed by Zalan Bujtas.

Update RenderLayer's z-order lists when hit testing. There's no guarantee that they've
been updated; this happens to work most of the time because painting updates them,
but if incremental rendering is suppressed, we may not have painted yet.

Easy to hit on webkit.org in MiniBrowser, but I wasn't able to make a reduced testcase.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::hitTest):
(WebCore::RenderLayer::updateLayerListsIfNeeded): Flip the order of the tests, since checking
dirty bits is cheaper than calling isStackingContext().

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog (186425 => 186426)


--- releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog	2015-07-07 09:13:29 UTC (rev 186425)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/ChangeLog	2015-07-07 09:16:11 UTC (rev 186426)
@@ -1,3 +1,21 @@
+2015-06-22  Simon Fraser  <[email protected]>
+
+        ASSERT(!m_zOrderListsDirty) when mousing over web view with incremental rendering suppressed
+        https://bugs.webkit.org/show_bug.cgi?id=146225
+
+        Reviewed by Zalan Bujtas.
+
+        Update RenderLayer's z-order lists when hit testing. There's no guarantee that they've
+        been updated; this happens to work most of the time because painting updates them,
+        but if incremental rendering is suppressed, we may not have painted yet.
+        
+        Easy to hit on webkit.org in MiniBrowser, but I wasn't able to make a reduced testcase.
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::hitTest):
+        (WebCore::RenderLayer::updateLayerListsIfNeeded): Flip the order of the tests, since checking
+        dirty bits is cheaper than calling isStackingContext().
+
 2015-06-22  Zalan Bujtas  <[email protected]>
 
         REGRESSION(r169105) Dangling renderer pointer in SelectionSubtreeRoot::SelectionSubtreeData.

Modified: releases/WebKitGTK/webkit-2.8/Source/WebCore/rendering/RenderLayer.cpp (186425 => 186426)


--- releases/WebKitGTK/webkit-2.8/Source/WebCore/rendering/RenderLayer.cpp	2015-07-07 09:13:29 UTC (rev 186425)
+++ releases/WebKitGTK/webkit-2.8/Source/WebCore/rendering/RenderLayer.cpp	2015-07-07 09:16:11 UTC (rev 186426)
@@ -4777,6 +4777,8 @@
 {
     ASSERT(isSelfPaintingLayer() || hasSelfPaintingLayerDescendant());
     ASSERT(!renderer().view().needsLayout());
+    
+    updateLayerListsIfNeeded();
 
     LayoutRect hitTestArea = isOutOfFlowRenderFlowThread() ? downcast<RenderFlowThread>(renderer()).visualOverflowRect() : renderer().view().documentRect();
     if (!request.ignoreClipping())
@@ -6239,7 +6241,7 @@
 
 void RenderLayer::updateLayerListsIfNeeded()
 {
-    bool shouldUpdateDescendantsAreContiguousInStackingOrder = isStackingContext() && (m_zOrderListsDirty || m_normalFlowListDirty);
+    bool shouldUpdateDescendantsAreContiguousInStackingOrder = (m_zOrderListsDirty || m_normalFlowListDirty) && isStackingContext();
     updateZOrderLists();
     updateNormalFlowList();
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to