Chromium Code Reviews| Index: third_party/WebKit/Source/platform/graphics/CanvasSurfaceLayerBridge.cpp |
| diff --git a/third_party/WebKit/Source/platform/graphics/CanvasSurfaceLayerBridge.cpp b/third_party/WebKit/Source/platform/graphics/CanvasSurfaceLayerBridge.cpp |
| index 67b4817b97fb74df518a102fd71c098bde45f26c..a646fae9aba638c8ae39ee9747f8eb47c6417fba 100644 |
| --- a/third_party/WebKit/Source/platform/graphics/CanvasSurfaceLayerBridge.cpp |
| +++ b/third_party/WebKit/Source/platform/graphics/CanvasSurfaceLayerBridge.cpp |
| @@ -17,6 +17,7 @@ |
| #include "public/platform/Platform.h" |
| #include "public/platform/WebCompositorSupport.h" |
| #include "public/platform/WebLayer.h" |
| +#include "public/platform/WebLayerTreeView.h" |
| #include "public/platform/modules/offscreencanvas/offscreen_canvas_surface.mojom-blink.h" |
| #include "ui/gfx/geometry/size.h" |
| #include "wtf/Functional.h" |
| @@ -55,11 +56,14 @@ class OffscreenCanvasSurfaceReferenceFactory |
| } // namespace |
| CanvasSurfaceLayerBridge::CanvasSurfaceLayerBridge( |
| - CanvasSurfaceLayerBridgeObserver* observer) |
| + CanvasSurfaceLayerBridgeObserver* observer, |
| + WebLayerTreeView* layerTreeView) |
| : m_weakFactory(this), |
| m_observer(observer), |
| m_binding(this), |
| - m_frameSinkId(Platform::current()->generateFrameSinkId()) { |
| + m_frameSinkId(Platform::current()->generateFrameSinkId()), |
| + m_parentFrameSinkId(layerTreeView ? layerTreeView->getFrameSinkId() |
|
dcheng
2017/01/24 22:31:37
With the latest PS, do we still need a null check
xlai (Olivia)
2017/01/24 22:57:12
Yes, in EmptyChromeClient or Unit test, layertreev
xlai (Olivia)
2017/01/24 23:15:39
I took away the nullity check. I look through the
|
| + : cc::FrameSinkId()) { |
| m_refFactory = |
| new OffscreenCanvasSurfaceReferenceFactory(m_weakFactory.GetWeakPtr()); |
| @@ -67,8 +71,11 @@ CanvasSurfaceLayerBridge::CanvasSurfaceLayerBridge( |
| mojom::blink::OffscreenCanvasSurfaceFactoryPtr serviceFactory; |
| Platform::current()->interfaceProvider()->getInterface( |
| mojo::MakeRequest(&serviceFactory)); |
| + // TODO(xlai): Ensure OffscreenCanvas commit() is still functional when a |
| + // frame-less HTML canvas's document is reparenting under another frame. |
| + // See crbug.com/683172. |
| serviceFactory->CreateOffscreenCanvasSurface( |
| - m_frameSinkId, m_binding.CreateInterfacePtrAndBind(), |
| + m_parentFrameSinkId, m_frameSinkId, m_binding.CreateInterfacePtrAndBind(), |
| mojo::MakeRequest(&m_service)); |
| } |