| Index: content/renderer/render_thread_impl.cc
|
| diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
|
| index 9cb97a93dc9ad31f2c4019a1d457c49eb1862eed..03bbc6fb6f5e6af01a6a07e6d3e3c7a49bd484f9 100644
|
| --- a/content/renderer/render_thread_impl.cc
|
| +++ b/content/renderer/render_thread_impl.cc
|
| @@ -1185,9 +1185,11 @@ void RenderThreadImpl::InitializeCompositorThread() {
|
| #if defined(OS_ANDROID)
|
| SynchronousCompositorFactory* sync_compositor_factory =
|
| SynchronousCompositorFactory::GetInstance();
|
| + const base::CommandLine* cmd_line = base::CommandLine::ForCurrentProcess();
|
| bool using_ipc_sync_compositing =
|
| - base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| - switches::kIPCSyncCompositing);
|
| + cmd_line->HasSwitch(switches::kIPCSyncCompositing);
|
| + bool async_input_for_sync_compositing =
|
| + cmd_line->HasSwitch(switches::kAsyncInputForSyncCompositor);
|
| DCHECK(!sync_compositor_factory || !using_ipc_sync_compositing);
|
|
|
| if (sync_compositor_factory) {
|
| @@ -1209,16 +1211,23 @@ void RenderThreadImpl::InitializeCompositorThread() {
|
| false));
|
| }
|
|
|
| - InputHandlerManagerClient* input_handler_manager_client = NULL;
|
| + InputHandlerManagerClient* input_handler_manager_client = nullptr;
|
| + InputHandlerManagerSyncHandlerProxyClient*
|
| + input_handler_manager_sync_handler_proxy_client = nullptr;
|
| #if defined(OS_ANDROID)
|
| if (using_ipc_sync_compositing) {
|
| sync_compositor_message_filter_ =
|
| new SynchronousCompositorFilter(compositor_task_runner_);
|
| AddFilter(sync_compositor_message_filter_.get());
|
| - input_handler_manager_client = sync_compositor_message_filter_.get();
|
| + if (!async_input_for_sync_compositing)
|
| + input_handler_manager_client = sync_compositor_message_filter_.get();
|
| + input_handler_manager_sync_handler_proxy_client =
|
| + sync_compositor_message_filter_.get();
|
| } else if (sync_compositor_factory) {
|
| input_handler_manager_client =
|
| sync_compositor_factory->GetInputHandlerManagerClient();
|
| + input_handler_manager_sync_handler_proxy_client =
|
| + sync_compositor_factory->GetInputHandlerManagerSyncHandlerProxyClient();
|
| }
|
| #endif
|
| if (!input_handler_manager_client) {
|
| @@ -1231,6 +1240,7 @@ void RenderThreadImpl::InitializeCompositorThread() {
|
| }
|
| input_handler_manager_.reset(new InputHandlerManager(
|
| compositor_task_runner_, input_handler_manager_client,
|
| + input_handler_manager_sync_handler_proxy_client,
|
| renderer_scheduler_.get()));
|
| }
|
|
|
|
|