| Index: content/browser/renderer_host/offscreen_canvas_surface_manager.cc
|
| diff --git a/content/browser/renderer_host/offscreen_canvas_surface_manager.cc b/content/browser/renderer_host/offscreen_canvas_surface_manager.cc
|
| index 65ff06e0c83c3e60eaf4e6a0e92eb6a283f56809..1eb9373fdfa2fd837f66460e6fd6b9d3d10cdfa9 100644
|
| --- a/content/browser/renderer_host/offscreen_canvas_surface_manager.cc
|
| +++ b/content/browser/renderer_host/offscreen_canvas_surface_manager.cc
|
| @@ -27,6 +27,30 @@ OffscreenCanvasSurfaceManager* OffscreenCanvasSurfaceManager::GetInstance() {
|
| return g_manager.Pointer();
|
| }
|
|
|
| +void OffscreenCanvasSurfaceManager::RegisterFrameSinkToParent(
|
| + const cc::FrameSinkId& child_frame_sink_id) {
|
| + auto surface_iter = registered_surface_instances_.find(child_frame_sink_id);
|
| + if (surface_iter == registered_surface_instances_.end())
|
| + return;
|
| + OffscreenCanvasSurfaceImpl* surfaceImpl = surface_iter->second;
|
| + if (surfaceImpl->parent_frame_sink_id().is_valid()) {
|
| + GetSurfaceManager()->RegisterFrameSinkHierarchy(
|
| + surfaceImpl->parent_frame_sink_id(), child_frame_sink_id);
|
| + }
|
| +}
|
| +
|
| +void OffscreenCanvasSurfaceManager::UnregisterFrameSinkFromParent(
|
| + const cc::FrameSinkId& child_frame_sink_id) {
|
| + auto surface_iter = registered_surface_instances_.find(child_frame_sink_id);
|
| + if (surface_iter == registered_surface_instances_.end())
|
| + return;
|
| + OffscreenCanvasSurfaceImpl* surfaceImpl = surface_iter->second;
|
| + if (surfaceImpl->parent_frame_sink_id().is_valid()) {
|
| + GetSurfaceManager()->UnregisterFrameSinkHierarchy(
|
| + surfaceImpl->parent_frame_sink_id(), child_frame_sink_id);
|
| + }
|
| +}
|
| +
|
| void OffscreenCanvasSurfaceManager::OnSurfaceCreated(
|
| const cc::SurfaceInfo& surface_info) {
|
| auto surface_iter =
|
| @@ -38,7 +62,7 @@ void OffscreenCanvasSurfaceManager::OnSurfaceCreated(
|
| }
|
|
|
| void OffscreenCanvasSurfaceManager::RegisterOffscreenCanvasSurfaceInstance(
|
| - cc::FrameSinkId frame_sink_id,
|
| + const cc::FrameSinkId& frame_sink_id,
|
| OffscreenCanvasSurfaceImpl* surface_instance) {
|
| DCHECK(surface_instance);
|
| DCHECK_EQ(registered_surface_instances_.count(frame_sink_id), 0u);
|
| @@ -46,13 +70,13 @@ void OffscreenCanvasSurfaceManager::RegisterOffscreenCanvasSurfaceInstance(
|
| }
|
|
|
| void OffscreenCanvasSurfaceManager::UnregisterOffscreenCanvasSurfaceInstance(
|
| - cc::FrameSinkId frame_sink_id) {
|
| + const cc::FrameSinkId& frame_sink_id) {
|
| DCHECK_EQ(registered_surface_instances_.count(frame_sink_id), 1u);
|
| registered_surface_instances_.erase(frame_sink_id);
|
| }
|
|
|
| OffscreenCanvasSurfaceImpl* OffscreenCanvasSurfaceManager::GetSurfaceInstance(
|
| - cc::FrameSinkId frame_sink_id) {
|
| + const cc::FrameSinkId& frame_sink_id) {
|
| auto search = registered_surface_instances_.find(frame_sink_id);
|
| if (search != registered_surface_instances_.end()) {
|
| return search->second;
|
|
|