Index: content/browser/compositor/delegated_frame_host.cc |
diff --git a/content/browser/compositor/delegated_frame_host.cc b/content/browser/compositor/delegated_frame_host.cc |
index f45e7f40c1c3028defaba8746b6d81954ee7bd0f..0397b22bdea49c1da1f0babd5df6f3dace00c90d 100644 |
--- a/content/browser/compositor/delegated_frame_host.cc |
+++ b/content/browser/compositor/delegated_frame_host.cc |
@@ -65,7 +65,9 @@ DelegatedFrameHost::DelegatedFrameHost(DelegatedFrameHostClient* client) |
current_scale_factor_(1.f), |
can_lock_compositor_(YES_CAN_LOCK), |
delegated_frame_evictor_(new DelegatedFrameEvictor(this)) { |
- ImageTransportFactory::GetInstance()->AddObserver(this); |
+ ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); |
+ factory->AddObserver(this); |
+ id_allocator_ = factory->GetContextFactory()->CreateSurfaceIdAllocator(); |
} |
void DelegatedFrameHost::WasShown(const ui::LatencyInfo& latency_info) { |
@@ -195,6 +197,13 @@ void DelegatedFrameHost::EndFrameSubscription() { |
frame_subscriber_.reset(); |
} |
+uint32_t DelegatedFrameHost::GetSurfaceIdNamespace() { |
+ if (!use_surfaces_) |
+ return 0; |
+ |
+ return id_allocator_->id_namespace(); |
+} |
+ |
bool DelegatedFrameHost::ShouldSkipFrame(gfx::Size size_in_dip) const { |
// Should skip a frame only when another frame from the renderer is guaranteed |
// to replace it. Otherwise may cause hangs when the renderer is waiting for |
@@ -365,8 +374,6 @@ void DelegatedFrameHost::SwapDelegatedFrame( |
ImageTransportFactory* factory = ImageTransportFactory::GetInstance(); |
cc::SurfaceManager* manager = factory->GetSurfaceManager(); |
if (!surface_factory_) { |
- id_allocator_ = |
- factory->GetContextFactory()->CreateSurfaceIdAllocator(); |
surface_factory_ = |
make_scoped_ptr(new cc::SurfaceFactory(manager, this)); |
} |