Index: content/browser/aura/gpu_process_transport_factory.cc |
diff --git a/content/browser/aura/gpu_process_transport_factory.cc b/content/browser/aura/gpu_process_transport_factory.cc |
index 3c55282813ee482b28845e38737259110853cbe7..f34ef90e2d56bc1ea05cabed2b16d5a1609e4da5 100644 |
--- a/content/browser/aura/gpu_process_transport_factory.cc |
+++ b/content/browser/aura/gpu_process_transport_factory.cc |
@@ -13,6 +13,7 @@ |
#include "cc/output/compositor_frame.h" |
#include "cc/output/output_surface.h" |
#include "content/browser/aura/browser_compositor_output_surface.h" |
+#include "content/browser/aura/browser_compositor_output_surface_capturer.h" |
#include "content/browser/aura/browser_compositor_output_surface_proxy.h" |
#include "content/browser/aura/reflector_impl.h" |
#include "content/browser/aura/software_browser_compositor_output_surface.h" |
@@ -251,12 +252,11 @@ scoped_ptr<cc::OutputSurface> GpuProcessTransportFactory::CreateOutputSurface( |
compositor_thread_task_runner.get()); |
scoped_ptr<BrowserCompositorOutputSurface> surface( |
- new BrowserCompositorOutputSurface( |
- context_provider, |
- per_compositor_data_[compositor]->surface_id, |
- &output_surface_map_, |
- base::MessageLoopProxy::current().get(), |
- compositor->AsWeakPtr())); |
+ new BrowserCompositorOutputSurface(context_provider, |
+ data->surface_id, |
+ &output_surface_map_, |
+ base::MessageLoopProxy::current(), |
+ compositor->AsWeakPtr())); |
if (data->reflector.get()) { |
data->reflector->CreateSharedTexture(); |
data->reflector->AttachToOutputSurface(surface.get()); |
@@ -353,6 +353,19 @@ scoped_refptr<ui::Texture> GpuProcessTransportFactory::CreateOwnedTexture( |
return image; |
} |
+scoped_ptr<SurfaceCapturer> |
+GpuProcessTransportFactory::CreateOutputSurfaceCapturer( |
+ ui::Compositor* compositor, |
+ SurfaceCapturer::Client* client) { |
+ PerCompositorDataMap::iterator it = per_compositor_data_.find(compositor); |
+ if (it == per_compositor_data_.end()) |
+ return scoped_ptr<SurfaceCapturer>(); |
+ PerCompositorData* data = it->second; |
+ DCHECK(data); |
+ return scoped_ptr<SurfaceCapturer>(new BrowserCompositorOutputSurfaceCapturer( |
+ &output_surface_map_, data->surface_id, client)); |
+} |
+ |
GLHelper* GpuProcessTransportFactory::GetGLHelper() { |
if (!gl_helper_) { |
CreateSharedContextLazy(); |