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()) { |