| Index: Source/core/rendering/compositing/CompositingReasonFinder.cpp | 
| diff --git a/Source/core/rendering/compositing/CompositingReasonFinder.cpp b/Source/core/rendering/compositing/CompositingReasonFinder.cpp | 
| index b0ecb32a2b5f900abed73e086c34a4d824dd8994..66447ea40cc0e322a6dd6b4de8fbd9416fce5cab 100644 | 
| --- a/Source/core/rendering/compositing/CompositingReasonFinder.cpp | 
| +++ b/Source/core/rendering/compositing/CompositingReasonFinder.cpp | 
| @@ -205,7 +205,7 @@ bool CompositingReasonFinder::requiresCompositingForScrollBlocksOn(const RenderO | 
| // Optimizing this fully would avoid layer explosion in pathological cases like '*' rules. | 
| // We could consider tracking the current state in CompositingRequirementsUpdater::update. | 
|  | 
| -    // Ensure iframes don't get composited when they require no more blocking than the root. | 
| +    // Ensure iframes don't get composited when they require no more blocking than their parent. | 
| if (renderer->isRenderView()) { | 
| if (const FrameView* parentFrame = toRenderView(renderer)->frameView()->parentFrameView()) { | 
| if (const RenderView* parentRenderer = parentFrame->renderView()) { | 
| @@ -213,6 +213,11 @@ bool CompositingReasonFinder::requiresCompositingForScrollBlocksOn(const RenderO | 
| if (!(style->scrollBlocksOn() & ~parentRenderer->style()->scrollBlocksOn())) | 
| return false; | 
| } | 
| +        } else { | 
| +            // The root frame will either always already be composited, or compositing will be disabled. | 
| +            // Either way, we don't need to require compositing for scroll blocks on.  This avoids | 
| +            // enabling compositing by default, and avoids cluttering the root layers compositing reasons. | 
| +            return false; | 
| } | 
| } | 
|  | 
|  |