Title: [139229] trunk
Revision
139229
Author
[email protected]
Date
2013-01-09 12:46:17 -0800 (Wed, 09 Jan 2013)

Log Message

Assertion Failure in WebCore::RenderLayerCompositor::updateCompositingLayers
https://bugs.webkit.org/show_bug.cgi?id=106419

Reviewed by Simon Fraser.

Source/WebCore:

No new tests added, just un-skipped 3 existing tests.

RenderLayerCompositor::updateCompositingLayers is being called with a pending layout, so computing the
layers at that point would be useless & error-prone as they will be using incorrect layout values. If a layout is pending it means that
RenderLayerCompositor::updateCompositingLayers would get called again after the pending layout ends, so any values calculated at that point would be
overwritten immediately. This patch removes the old ASSERT and makes it a return instead.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::updateCompositingLayers):

LayoutTests:

Re-added skipped tests as this patch resolves the flakiness.

* platform/mac/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (139228 => 139229)


--- trunk/LayoutTests/ChangeLog	2013-01-09 20:45:03 UTC (rev 139228)
+++ trunk/LayoutTests/ChangeLog	2013-01-09 20:46:17 UTC (rev 139229)
@@ -1,3 +1,14 @@
+2013-01-09  Alexandru Chiculita  <[email protected]>
+
+        Assertion Failure in WebCore::RenderLayerCompositor::updateCompositingLayers
+        https://bugs.webkit.org/show_bug.cgi?id=106419
+
+        Reviewed by Simon Fraser.
+
+        Re-added skipped tests as this patch resolves the flakiness.
+
+        * platform/mac/TestExpectations:
+
 2013-01-09  Roger Fong  <[email protected]>
 
         Unreviewed. Rebaseline some accessibility test results on Win7 port.

Modified: trunk/LayoutTests/platform/mac/TestExpectations (139228 => 139229)


--- trunk/LayoutTests/platform/mac/TestExpectations	2013-01-09 20:45:03 UTC (rev 139228)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2013-01-09 20:46:17 UTC (rev 139229)
@@ -1273,7 +1273,3 @@
 webkit.org/b/106415 fast/workers/worker-document-leak.html [ Pass Failure ]
 webkit.org/b/106415 fast/workers/worker-lifecycle.html [ Pass Failure ]
 
-webkit.org/b/106419 [ Debug ] dom/html/level2/html/HTMLDocument11.html [ Crash Failure ]
-webkit.org/b/106419 [ Debug ] dom/html/level2/html/HTMLDocument01.html [ Crash Failure ]
-webkit.org/b/106419 [ Debug ] dom/html/level2/html/HTMLBodyElement09.html [ Crash Failure ]
-

Modified: trunk/Source/WebCore/ChangeLog (139228 => 139229)


--- trunk/Source/WebCore/ChangeLog	2013-01-09 20:45:03 UTC (rev 139228)
+++ trunk/Source/WebCore/ChangeLog	2013-01-09 20:46:17 UTC (rev 139229)
@@ -1,3 +1,20 @@
+2013-01-09  Alexandru Chiculita  <[email protected]>
+
+        Assertion Failure in WebCore::RenderLayerCompositor::updateCompositingLayers
+        https://bugs.webkit.org/show_bug.cgi?id=106419
+
+        Reviewed by Simon Fraser.
+
+        No new tests added, just un-skipped 3 existing tests.
+
+        RenderLayerCompositor::updateCompositingLayers is being called with a pending layout, so computing the
+        layers at that point would be useless & error-prone as they will be using incorrect layout values. If a layout is pending it means that 
+        RenderLayerCompositor::updateCompositingLayers would get called again after the pending layout ends, so any values calculated at that point would be
+        overwritten immediately. This patch removes the old ASSERT and makes it a return instead.
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::updateCompositingLayers):
+
 2013-01-09  Robert Hogan  <[email protected]>
 
         REGRESSION(r111439): Focus ring is rendered incorrectly in fast/inline/continuation-outlines-with-layers.html

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (139228 => 139229)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2013-01-09 20:45:03 UTC (rev 139228)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2013-01-09 20:46:17 UTC (rev 139229)
@@ -402,14 +402,16 @@
     if (!m_renderView->document()->visualUpdatesAllowed())
         return;
 
+    // Avoid updating the layers with old values. Compositing layers will be updated after the layout is finished.
+    if (m_renderView->needsLayout())
+        return;
+
     if (m_forceCompositingMode && !m_compositing)
         enableCompositingMode(true);
 
     if (!m_reevaluateCompositingAfterLayout && !m_compositing)
         return;
 
-    ASSERT(!m_renderView->needsLayout());
-
     AnimationUpdateBlock animationUpdateBlock(m_renderView->frameView()->frame()->animation());
 
     bool checkForHierarchyUpdate = m_reevaluateCompositingAfterLayout;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to