Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: content/renderer/input/input_handler_manager.cc

Issue 2479663002: Move compositor InputHandler from RenderViewImpl to RenderWidget. (Closed)
Patch Set: Rebase to master@{#445291}. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/input/input_handler_manager.h" 5 #include "content/renderer/input/input_handler_manager.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 client_->SetInputHandlerManager(this); 62 client_->SetInputHandlerManager(this);
63 } 63 }
64 64
65 InputHandlerManager::~InputHandlerManager() { 65 InputHandlerManager::~InputHandlerManager() {
66 client_->SetInputHandlerManager(nullptr); 66 client_->SetInputHandlerManager(nullptr);
67 } 67 }
68 68
69 void InputHandlerManager::AddInputHandler( 69 void InputHandlerManager::AddInputHandler(
70 int routing_id, 70 int routing_id,
71 const base::WeakPtr<cc::InputHandler>& input_handler, 71 const base::WeakPtr<cc::InputHandler>& input_handler,
72 const base::WeakPtr<RenderViewImpl>& render_view_impl, 72 const base::WeakPtr<RenderWidget>& render_widget,
73 bool enable_smooth_scrolling) { 73 bool enable_smooth_scrolling) {
74 if (task_runner_->BelongsToCurrentThread()) { 74 if (task_runner_->BelongsToCurrentThread()) {
75 AddInputHandlerOnCompositorThread( 75 AddInputHandlerOnCompositorThread(
76 routing_id, base::ThreadTaskRunnerHandle::Get(), input_handler, 76 routing_id, base::ThreadTaskRunnerHandle::Get(), input_handler,
77 render_view_impl, enable_smooth_scrolling); 77 render_widget, enable_smooth_scrolling);
78 } else { 78 } else {
79 task_runner_->PostTask( 79 task_runner_->PostTask(
80 FROM_HERE, 80 FROM_HERE,
81 base::Bind(&InputHandlerManager::AddInputHandlerOnCompositorThread, 81 base::Bind(&InputHandlerManager::AddInputHandlerOnCompositorThread,
82 base::Unretained(this), routing_id, 82 base::Unretained(this), routing_id,
83 base::ThreadTaskRunnerHandle::Get(), input_handler, 83 base::ThreadTaskRunnerHandle::Get(), input_handler,
84 render_view_impl, enable_smooth_scrolling)); 84 render_widget, enable_smooth_scrolling));
85 } 85 }
86 } 86 }
87 87
88 void InputHandlerManager::AddInputHandlerOnCompositorThread( 88 void InputHandlerManager::AddInputHandlerOnCompositorThread(
89 int routing_id, 89 int routing_id,
90 const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner, 90 const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner,
91 const base::WeakPtr<cc::InputHandler>& input_handler, 91 const base::WeakPtr<cc::InputHandler>& input_handler,
92 const base::WeakPtr<RenderViewImpl>& render_view_impl, 92 const base::WeakPtr<RenderWidget>& render_widget,
93 bool enable_smooth_scrolling) { 93 bool enable_smooth_scrolling) {
94 DCHECK(task_runner_->BelongsToCurrentThread()); 94 DCHECK(task_runner_->BelongsToCurrentThread());
95 95
96 // The handler could be gone by this point if the compositor has shut down. 96 // The handler could be gone by this point if the compositor has shut down.
97 if (!input_handler) 97 if (!input_handler)
98 return; 98 return;
99 99
100 // The same handler may be registered for a route multiple times. 100 // The same handler may be registered for a route multiple times.
101 if (input_handlers_.count(routing_id) != 0) 101 if (input_handlers_.count(routing_id) != 0)
102 return; 102 return;
103 103
104 TRACE_EVENT1("input", 104 TRACE_EVENT1("input",
105 "InputHandlerManager::AddInputHandlerOnCompositorThread", 105 "InputHandlerManager::AddInputHandlerOnCompositorThread",
106 "result", "AddingRoute"); 106 "result", "AddingRoute");
107 std::unique_ptr<InputHandlerWrapper> wrapper( 107 std::unique_ptr<InputHandlerWrapper> wrapper(
108 new InputHandlerWrapper(this, routing_id, main_task_runner, input_handler, 108 new InputHandlerWrapper(this, routing_id, main_task_runner, input_handler,
109 render_view_impl, enable_smooth_scrolling)); 109 render_widget, enable_smooth_scrolling));
110 client_->RegisterRoutingID(routing_id); 110 client_->RegisterRoutingID(routing_id);
111 if (synchronous_handler_proxy_client_) { 111 if (synchronous_handler_proxy_client_) {
112 synchronous_handler_proxy_client_->DidAddSynchronousHandlerProxy( 112 synchronous_handler_proxy_client_->DidAddSynchronousHandlerProxy(
113 routing_id, wrapper->input_handler_proxy()); 113 routing_id, wrapper->input_handler_proxy());
114 } 114 }
115 input_handlers_[routing_id] = std::move(wrapper); 115 input_handlers_[routing_id] = std::move(wrapper);
116 } 116 }
117 117
118 void InputHandlerManager::RemoveInputHandler(int routing_id) { 118 void InputHandlerManager::RemoveInputHandler(int routing_id) {
119 DCHECK(task_runner_->BelongsToCurrentThread()); 119 DCHECK(task_runner_->BelongsToCurrentThread());
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 void InputHandlerManager::DispatchNonBlockingEventToMainThread( 278 void InputHandlerManager::DispatchNonBlockingEventToMainThread(
279 int routing_id, 279 int routing_id,
280 blink::WebScopedInputEvent event, 280 blink::WebScopedInputEvent event,
281 const ui::LatencyInfo& latency_info) { 281 const ui::LatencyInfo& latency_info) {
282 DCHECK(task_runner_->BelongsToCurrentThread()); 282 DCHECK(task_runner_->BelongsToCurrentThread());
283 client_->DispatchNonBlockingEventToMainThread(routing_id, std::move(event), 283 client_->DispatchNonBlockingEventToMainThread(routing_id, std::move(event),
284 latency_info); 284 latency_info);
285 } 285 }
286 286
287 } // namespace content 287 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/input/input_handler_manager.h ('k') | content/renderer/input/input_handler_wrapper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698