Chromium Code Reviews| Index: content/renderer/render_widget.cc |
| diff --git a/content/renderer/render_widget.cc b/content/renderer/render_widget.cc |
| index 79f52febd8a50bb97669db307581ab989d471f5e..c12b2410eb37c708cbf9a358bc80a6456ea75a68 100644 |
| --- a/content/renderer/render_widget.cc |
| +++ b/content/renderer/render_widget.cc |
| @@ -57,8 +57,10 @@ |
| #include "webkit/plugins/npapi/webplugin.h" |
| #include "webkit/plugins/ppapi/ppapi_plugin_instance.h" |
| #include "webkit/renderer/compositor_bindings/web_rendering_stats_impl.h" |
| +#include "webkit/renderer/compositor_bindings/web_to_ccinput_handler_adapter.h" |
| #if defined(OS_ANDROID) |
| +#include "content/renderer/android/synchronous_compositor_impl.h" |
| #include "content/renderer/android/synchronous_compositor_output_surface.h" |
| #endif |
| @@ -580,8 +582,7 @@ scoped_ptr<cc::OutputSurface> RenderWidget::CreateOutputSurface() { |
| #if defined(OS_ANDROID) |
| if (command_line.HasSwitch(switches::kEnableSynchronousRendererCompositor)) { |
| - return scoped_ptr<cc::OutputSurface>( |
| - new SynchronousCompositorOutputSurface(routing_id())); |
| + return GetSynchronousCompositor()->CreateOutputSurface(); |
| } |
| #endif |
| @@ -620,6 +621,33 @@ scoped_ptr<cc::OutputSurface> RenderWidget::CreateOutputSurface() { |
| new CompositorOutputSurface(routing_id(), context, NULL)); |
| } |
| +scoped_ptr<cc::InputHandlerClient> RenderWidget::CreateInputHandlerClient() { |
| + scoped_ptr<cc::InputHandlerClient> ret; |
| + scoped_ptr<WebKit::WebInputHandler> web_handler( |
| + webwidget_->createInputHandler()); |
| + if (web_handler) |
| + ret = WebKit::WebToCCInputHandlerAdapter::create(web_handler.Pass()); |
| +#if defined(OS_ANDROID) |
| + if (ret && GetSynchronousCompositor()) { |
| + ret = GetSynchronousCompositor()->CreateInputHandlerClientWrapper( |
| + ret.Pass()); |
| + } |
| +#endif |
| + return ret.Pass(); |
| +} |
| + |
| +SynchronousCompositorImpl* RenderWidget::GetSynchronousCompositor() { |
| +#if defined(OS_ANDROID) |
| + const CommandLine& command_line = *CommandLine::ForCurrentProcess(); |
| + if (command_line.HasSwitch(switches::kEnableSynchronousRendererCompositor)) { |
| + synchronous_compositor_.reset(new SynchronousCompositorImpl(routing_id())); |
| + } |
| + return synchronous_compositor_.get(); |
| +#else |
| + return NULL; |
|
joth
2013/05/16 18:21:42
awkward - this is unreachable as this function is
|
| +#endif |
| +} |
| + |
| void RenderWidget::OnViewContextSwapBuffersAborted() { |
| TRACE_EVENT0("renderer", "RenderWidget::OnSwapBuffersAborted"); |
| while (!updates_pending_swap_.empty()) { |