| Index: Source/core/rendering/compositing/RenderLayerCompositor.cpp
|
| diff --git a/Source/core/rendering/compositing/RenderLayerCompositor.cpp b/Source/core/rendering/compositing/RenderLayerCompositor.cpp
|
| index 36ca9aea7e5aecf81851574b24ee3f1d683a3f83..bea72b7c41d00b77b800d08482db6a03892cc551 100644
|
| --- a/Source/core/rendering/compositing/RenderLayerCompositor.cpp
|
| +++ b/Source/core/rendering/compositing/RenderLayerCompositor.cpp
|
| @@ -150,8 +150,14 @@ void RenderLayerCompositor::updateForceCompositingMode()
|
| // FIXME: Can settings really be null here?
|
| if (Settings* settings = m_renderView.document().settings()) {
|
| bool forceCompositingMode = settings->forceCompositingMode() && m_hasAcceleratedCompositing;
|
| - if (forceCompositingMode && !isMainFrame())
|
| + if (forceCompositingMode && !isMainFrame()) {
|
| + // requiresCompositingForScrollableFrame will return a stale value if the RenderView
|
| + // needsLayout. Skip updating m_forceCompositingMode here as we'll call back into
|
| + // this method at the end of layout.
|
| + if (m_renderView.needsLayout())
|
| + return;
|
| forceCompositingMode = m_compositingReasonFinder.requiresCompositingForScrollableFrame();
|
| + }
|
| if (forceCompositingMode != m_forceCompositingMode) {
|
| setCompositingLayersNeedRebuild();
|
| m_forceCompositingMode = forceCompositingMode;
|
|
|