| 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)); | 
| } | 
|  |