| Index: third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
|
| diff --git a/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp b/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
|
| index 960e797a567a0e278c8e0bfb066efd0e17373b59..aa5ef52254f60256d7d8963d211e8db862c0cab8 100644
|
| --- a/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
|
| +++ b/third_party/WebKit/Source/core/layout/compositing/PaintLayerCompositor.cpp
|
| @@ -83,7 +83,8 @@ PaintLayerCompositor::PaintLayerCompositor(LayoutView& layoutView)
|
| m_isTrackingRasterInvalidations(
|
| layoutView.frameView()->isTrackingPaintInvalidations()),
|
| m_inOverlayFullscreenVideo(false),
|
| - m_rootLayerAttachment(RootLayerUnattached) {
|
| + m_rootLayerAttachment(RootLayerUnattached),
|
| + m_pendingChromeClientAttachment(false) {
|
| updateAcceleratedCompositingSettings();
|
| }
|
|
|
| @@ -461,6 +462,14 @@ void PaintLayerCompositor::updateIfNeeded() {
|
| layersNeedingPaintInvalidation[i]->layoutObject());
|
| }
|
|
|
| + if (m_pendingChromeClientAttachment) {
|
| + if (Page* page = m_layoutView.frame()->page()) {
|
| + page->chromeClient().attachRootGraphicsLayer(rootGraphicsLayer(),
|
| + m_layoutView.frame());
|
| + m_pendingChromeClientAttachment = false;
|
| + }
|
| + }
|
| +
|
| // Inform the inspector that the layer tree has changed.
|
| if (isMainFrame())
|
| probe::layerTreeDidChange(m_layoutView.frame());
|
| @@ -1228,14 +1237,9 @@ void PaintLayerCompositor::attachRootLayer(RootLayerAttachment attachment) {
|
| case RootLayerUnattached:
|
| ASSERT_NOT_REACHED();
|
| break;
|
| - case RootLayerAttachedViaChromeClient: {
|
| - LocalFrame& frame = m_layoutView.frameView()->frame();
|
| - Page* page = frame.page();
|
| - if (!page)
|
| - return;
|
| - page->chromeClient().attachRootGraphicsLayer(rootGraphicsLayer(), &frame);
|
| + case RootLayerAttachedViaChromeClient:
|
| + m_pendingChromeClientAttachment = true;
|
| break;
|
| - }
|
| case RootLayerAttachedViaEnclosingFrame: {
|
| HTMLFrameOwnerElement* ownerElement =
|
| m_layoutView.document().localOwner();
|
| @@ -1283,6 +1287,7 @@ void PaintLayerCompositor::detachRootLayer() {
|
| }
|
|
|
| m_rootLayerAttachment = RootLayerUnattached;
|
| + m_pendingChromeClientAttachment = false;
|
| }
|
|
|
| void PaintLayerCompositor::updateRootLayerAttachment() {
|
|
|