Title: [154417] trunk/Source/WebCore
- Revision
- 154417
- Author
- [email protected]
- Date
- 2013-08-21 14:32:41 -0700 (Wed, 21 Aug 2013)
Log Message
<https://webkit.org/b/116901> ASSERTION FAILED: !m_visibleDescendantStatusDirty on twitter
Reviewed by Beth Dakin.
In order to make decisions about compositing, the m_hasVisibleDescendant bit on RenderLayers
needs to be up-to-date when RenderLayerCompositor::computeCompositingRequirements is recursing
over the RenderLayer tree.
However, was possible for computeCompositingRequirements() to hit a layer whose m_visibleDescendantStatusDirty
bit was set; we only clear this bit from collectLayers() (when updating z-order lists), and from styleChanged()
which requires that style changed on the layer itself.
Fix by always calling updateDescendantDependentFlags() from computeCompositingRequirements().
Wasn't able to easily get a reduced testcase.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (154416 => 154417)
--- trunk/Source/WebCore/ChangeLog 2013-08-21 21:24:22 UTC (rev 154416)
+++ trunk/Source/WebCore/ChangeLog 2013-08-21 21:32:41 UTC (rev 154417)
@@ -1,3 +1,24 @@
+2013-08-21 Simon Fraser <[email protected]>
+
+ <https://webkit.org/b/116901> ASSERTION FAILED: !m_visibleDescendantStatusDirty on twitter
+
+ Reviewed by Beth Dakin.
+
+ In order to make decisions about compositing, the m_hasVisibleDescendant bit on RenderLayers
+ needs to be up-to-date when RenderLayerCompositor::computeCompositingRequirements is recursing
+ over the RenderLayer tree.
+
+ However, was possible for computeCompositingRequirements() to hit a layer whose m_visibleDescendantStatusDirty
+ bit was set; we only clear this bit from collectLayers() (when updating z-order lists), and from styleChanged()
+ which requires that style changed on the layer itself.
+
+ Fix by always calling updateDescendantDependentFlags() from computeCompositingRequirements().
+
+ Wasn't able to easily get a reduced testcase.
+
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+
2013-08-21 Alex Christensen <[email protected]>
<https://webkit.org/b/120137> Separating Win32 and Win64 builds.
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (154416 => 154417)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2013-08-21 21:24:22 UTC (rev 154416)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2013-08-21 21:32:41 UTC (rev 154417)
@@ -958,6 +958,7 @@
//
void RenderLayerCompositor::computeCompositingRequirements(RenderLayer* ancestorLayer, RenderLayer* layer, OverlapMap* overlapMap, CompositingState& compositingState, bool& layersChanged, bool& descendantHas3DTransform)
{
+ layer->updateDescendantDependentFlags();
layer->updateLayerListsIfNeeded();
if (layer->isOutOfFlowRenderFlowThread())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes