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

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@{#429880}. Created 4 years, 1 month 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 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 client_->SetInputHandlerManager(this); 60 client_->SetInputHandlerManager(this);
61 } 61 }
62 62
63 InputHandlerManager::~InputHandlerManager() { 63 InputHandlerManager::~InputHandlerManager() {
64 client_->SetInputHandlerManager(nullptr); 64 client_->SetInputHandlerManager(nullptr);
65 } 65 }
66 66
67 void InputHandlerManager::AddInputHandler( 67 void InputHandlerManager::AddInputHandler(
68 int routing_id, 68 int routing_id,
69 const base::WeakPtr<cc::InputHandler>& input_handler, 69 const base::WeakPtr<cc::InputHandler>& input_handler,
70 const base::WeakPtr<RenderViewImpl>& render_view_impl, 70 const base::WeakPtr<RenderWidget>& render_widget,
71 bool enable_smooth_scrolling) { 71 bool enable_smooth_scrolling) {
72 if (task_runner_->BelongsToCurrentThread()) { 72 if (task_runner_->BelongsToCurrentThread()) {
73 AddInputHandlerOnCompositorThread( 73 AddInputHandlerOnCompositorThread(
74 routing_id, base::ThreadTaskRunnerHandle::Get(), input_handler, 74 routing_id, base::ThreadTaskRunnerHandle::Get(), input_handler,
75 render_view_impl, enable_smooth_scrolling); 75 render_widget, enable_smooth_scrolling);
76 } else { 76 } else {
77 task_runner_->PostTask( 77 task_runner_->PostTask(
78 FROM_HERE, 78 FROM_HERE,
79 base::Bind(&InputHandlerManager::AddInputHandlerOnCompositorThread, 79 base::Bind(&InputHandlerManager::AddInputHandlerOnCompositorThread,
80 base::Unretained(this), routing_id, 80 base::Unretained(this), routing_id,
81 base::ThreadTaskRunnerHandle::Get(), input_handler, 81 base::ThreadTaskRunnerHandle::Get(), input_handler,
82 render_view_impl, enable_smooth_scrolling)); 82 render_widget, enable_smooth_scrolling));
83 } 83 }
84 } 84 }
85 85
86 void InputHandlerManager::AddInputHandlerOnCompositorThread( 86 void InputHandlerManager::AddInputHandlerOnCompositorThread(
87 int routing_id, 87 int routing_id,
88 const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner, 88 const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner,
89 const base::WeakPtr<cc::InputHandler>& input_handler, 89 const base::WeakPtr<cc::InputHandler>& input_handler,
90 const base::WeakPtr<RenderViewImpl>& render_view_impl, 90 const base::WeakPtr<RenderWidget>& render_widget,
91 bool enable_smooth_scrolling) { 91 bool enable_smooth_scrolling) {
92 DCHECK(task_runner_->BelongsToCurrentThread()); 92 DCHECK(task_runner_->BelongsToCurrentThread());
93 93
94 // The handler could be gone by this point if the compositor has shut down. 94 // The handler could be gone by this point if the compositor has shut down.
95 if (!input_handler) 95 if (!input_handler)
96 return; 96 return;
97 97
98 // The same handler may be registered for a route multiple times. 98 // The same handler may be registered for a route multiple times.
99 if (input_handlers_.count(routing_id) != 0) 99 if (input_handlers_.count(routing_id) != 0)
100 return; 100 return;
101 101
102 TRACE_EVENT1("input", 102 TRACE_EVENT1("input",
103 "InputHandlerManager::AddInputHandlerOnCompositorThread", 103 "InputHandlerManager::AddInputHandlerOnCompositorThread",
104 "result", "AddingRoute"); 104 "result", "AddingRoute");
105 std::unique_ptr<InputHandlerWrapper> wrapper( 105 std::unique_ptr<InputHandlerWrapper> wrapper(
106 new InputHandlerWrapper(this, routing_id, main_task_runner, input_handler, 106 new InputHandlerWrapper(this, routing_id, main_task_runner, input_handler,
107 render_view_impl, enable_smooth_scrolling)); 107 render_widget, enable_smooth_scrolling));
108 client_->RegisterRoutingID(routing_id); 108 client_->RegisterRoutingID(routing_id);
109 if (synchronous_handler_proxy_client_) { 109 if (synchronous_handler_proxy_client_) {
110 synchronous_handler_proxy_client_->DidAddSynchronousHandlerProxy( 110 synchronous_handler_proxy_client_->DidAddSynchronousHandlerProxy(
111 routing_id, wrapper->input_handler_proxy()); 111 routing_id, wrapper->input_handler_proxy());
112 } 112 }
113 input_handlers_.add(routing_id, std::move(wrapper)); 113 input_handlers_.add(routing_id, std::move(wrapper));
114 } 114 }
115 115
116 void InputHandlerManager::RemoveInputHandler(int routing_id) { 116 void InputHandlerManager::RemoveInputHandler(int routing_id) {
117 DCHECK(task_runner_->BelongsToCurrentThread()); 117 DCHECK(task_runner_->BelongsToCurrentThread());
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 void InputHandlerManager::DispatchNonBlockingEventToMainThread( 279 void InputHandlerManager::DispatchNonBlockingEventToMainThread(
280 int routing_id, 280 int routing_id,
281 ui::ScopedWebInputEvent event, 281 ui::ScopedWebInputEvent event,
282 const ui::LatencyInfo& latency_info) { 282 const ui::LatencyInfo& latency_info) {
283 DCHECK(task_runner_->BelongsToCurrentThread()); 283 DCHECK(task_runner_->BelongsToCurrentThread());
284 client_->DispatchNonBlockingEventToMainThread(routing_id, std::move(event), 284 client_->DispatchNonBlockingEventToMainThread(routing_id, std::move(event),
285 latency_info); 285 latency_info);
286 } 286 }
287 287
288 } // namespace content 288 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698