Title: [173186] trunk/Source/WebCore
Revision
173186
Author
[email protected]
Date
2014-09-02 14:25:33 -0700 (Tue, 02 Sep 2014)

Log Message

Fix an assertion sometimes seen under RenderLayerCompositor::detachRootLayer()
https://bugs.webkit.org/show_bug.cgi?id=136464

Reviewed by Tim Horton.

Don't try to call RenderLayer::isVisuallyNonEmpty() under RenderLayerCompositor::detachRootLayer()
when layout might be stale; there's not point trying to update the backing store state
when detaching, only when attaching.

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

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (173185 => 173186)


--- trunk/Source/WebCore/ChangeLog	2014-09-02 21:18:03 UTC (rev 173185)
+++ trunk/Source/WebCore/ChangeLog	2014-09-02 21:25:33 UTC (rev 173186)
@@ -1,5 +1,19 @@
 2014-09-02  Simon Fraser  <[email protected]>
 
+        Fix an assertion sometimes seen under RenderLayerCompositor::detachRootLayer()
+        https://bugs.webkit.org/show_bug.cgi?id=136464
+
+        Reviewed by Tim Horton.
+
+        Don't try to call RenderLayer::isVisuallyNonEmpty() under RenderLayerCompositor::detachRootLayer()
+        when layout might be stale; there's not point trying to update the backing store state
+        when detaching, only when attaching.
+
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
+
+2014-09-02  Simon Fraser  <[email protected]>
+
         Avoid backing store allocation with some combinations of replaced elements, masking and visibility:hidden
         https://bugs.webkit.org/show_bug.cgi?id=136400
 

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (173185 => 173186)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2014-09-02 21:18:03 UTC (rev 173185)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2014-09-02 21:25:33 UTC (rev 173186)
@@ -3434,12 +3434,6 @@
 
 void RenderLayerCompositor::rootLayerAttachmentChanged()
 {
-    // The attachment can affect whether the RenderView layer's paintsIntoWindow() behavior,
-    // so call updateDrawsContent() to update that.
-    RenderLayer* layer = m_renderView.layer();
-    if (RenderLayerBacking* backing = layer ? layer->backing() : 0)
-        backing->updateDrawsContent();
-
     // The document-relative page overlay layer (which is pinned to the main frame's layer tree)
     // is moved between different RenderLayerCompositors' layer trees, and needs to be
     // reattached whenever we swap in a new RenderLayerCompositor.
@@ -3451,6 +3445,12 @@
     if (!page)
         return;
 
+    // The attachment can affect whether the RenderView layer's paintsIntoWindow() behavior,
+    // so call updateDrawsContent() to update that.
+    RenderLayer* layer = m_renderView.layer();
+    if (RenderLayerBacking* backing = layer ? layer->backing() : nullptr)
+        backing->updateDrawsContent();
+
     if (GraphicsLayer* overlayLayer = page->chrome().client().documentOverlayLayerForFrame(frame))
         m_rootContentLayer->addChild(overlayLayer);
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to