Index: content/browser/frame_host/render_widget_host_view_child_frame.cc |
diff --git a/content/browser/frame_host/render_widget_host_view_child_frame.cc b/content/browser/frame_host/render_widget_host_view_child_frame.cc |
index 56926a544c3a5efb2f171145e992573467118280..2d1e0fa39f5303a0d985884c5d59032b6e95b61b 100644 |
--- a/content/browser/frame_host/render_widget_host_view_child_frame.cc |
+++ b/content/browser/frame_host/render_widget_host_view_child_frame.cc |
@@ -50,7 +50,8 @@ RenderWidgetHostViewChildFrame::RenderWidgetHostViewChildFrame( |
observing_begin_frame_source_(false), |
parent_surface_client_id_(0), |
weak_factory_(this) { |
- id_allocator_ = CreateSurfaceIdAllocator(); |
+ id_allocator_.reset(new cc::SurfaceIdAllocator(AllocateSurfaceClientId())); |
+ GetSurfaceManager()->RegisterSurfaceClientId(id_allocator_->client_id()); |
RegisterSurfaceNamespaceId(); |
host_->SetView(this); |
@@ -59,6 +60,9 @@ RenderWidgetHostViewChildFrame::RenderWidgetHostViewChildFrame( |
RenderWidgetHostViewChildFrame::~RenderWidgetHostViewChildFrame() { |
if (!surface_id_.is_null()) |
surface_factory_->Destroy(surface_id_); |
+ |
+ if (GetSurfaceManager()) |
+ GetSurfaceManager()->InvalidateSurfaceClientId(id_allocator_->client_id()); |
} |
void RenderWidgetHostViewChildFrame::SetCrossProcessFrameConnector( |