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

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

Issue 1566303004: Smooth scroll on Windows should respect OS level animation disabling (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: pass disable flag to InputHandlerWrapper Created 4 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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 base::Unretained(this))); 55 base::Unretained(this)));
56 } 56 }
57 57
58 InputHandlerManager::~InputHandlerManager() { 58 InputHandlerManager::~InputHandlerManager() {
59 client_->SetBoundHandler(InputHandlerManagerClient::Handler()); 59 client_->SetBoundHandler(InputHandlerManagerClient::Handler());
60 } 60 }
61 61
62 void InputHandlerManager::AddInputHandler( 62 void InputHandlerManager::AddInputHandler(
63 int routing_id, 63 int routing_id,
64 const base::WeakPtr<cc::InputHandler>& input_handler, 64 const base::WeakPtr<cc::InputHandler>& input_handler,
65 const base::WeakPtr<RenderViewImpl>& render_view_impl) { 65 const base::WeakPtr<RenderViewImpl>& render_view_impl,
66 bool disable_smooth_scrolling) {
66 if (task_runner_->BelongsToCurrentThread()) { 67 if (task_runner_->BelongsToCurrentThread()) {
67 AddInputHandlerOnCompositorThread(routing_id, 68 AddInputHandlerOnCompositorThread(routing_id,
68 base::ThreadTaskRunnerHandle::Get(), 69 base::ThreadTaskRunnerHandle::Get(),
69 input_handler, render_view_impl); 70 input_handler, render_view_impl,
71 disable_smooth_scrolling);
70 } else { 72 } else {
71 task_runner_->PostTask( 73 task_runner_->PostTask(
72 FROM_HERE, 74 FROM_HERE,
73 base::Bind(&InputHandlerManager::AddInputHandlerOnCompositorThread, 75 base::Bind(&InputHandlerManager::AddInputHandlerOnCompositorThread,
74 base::Unretained(this), routing_id, 76 base::Unretained(this), routing_id,
75 base::ThreadTaskRunnerHandle::Get(), input_handler, 77 base::ThreadTaskRunnerHandle::Get(), input_handler,
76 render_view_impl)); 78 render_view_impl,
79 disable_smooth_scrolling));
77 } 80 }
78 } 81 }
79 82
80 void InputHandlerManager::AddInputHandlerOnCompositorThread( 83 void InputHandlerManager::AddInputHandlerOnCompositorThread(
81 int routing_id, 84 int routing_id,
82 const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner, 85 const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner,
83 const base::WeakPtr<cc::InputHandler>& input_handler, 86 const base::WeakPtr<cc::InputHandler>& input_handler,
84 const base::WeakPtr<RenderViewImpl>& render_view_impl) { 87 const base::WeakPtr<RenderViewImpl>& render_view_impl,
88 bool disable_smooth_scrolling) {
85 DCHECK(task_runner_->BelongsToCurrentThread()); 89 DCHECK(task_runner_->BelongsToCurrentThread());
86 90
87 // The handler could be gone by this point if the compositor has shut down. 91 // The handler could be gone by this point if the compositor has shut down.
88 if (!input_handler) 92 if (!input_handler)
89 return; 93 return;
90 94
91 // The same handler may be registered for a route multiple times. 95 // The same handler may be registered for a route multiple times.
92 if (input_handlers_.count(routing_id) != 0) 96 if (input_handlers_.count(routing_id) != 0)
93 return; 97 return;
94 98
95 TRACE_EVENT1("input", 99 TRACE_EVENT1("input",
96 "InputHandlerManager::AddInputHandlerOnCompositorThread", 100 "InputHandlerManager::AddInputHandlerOnCompositorThread",
97 "result", "AddingRoute"); 101 "result", "AddingRoute");
98 scoped_ptr<InputHandlerWrapper> wrapper(new InputHandlerWrapper( 102 scoped_ptr<InputHandlerWrapper> wrapper(new InputHandlerWrapper(
99 this, routing_id, main_task_runner, input_handler, render_view_impl)); 103 this, routing_id, main_task_runner, input_handler, render_view_impl,
104 disable_smooth_scrolling));
100 client_->DidAddInputHandler(routing_id, wrapper->input_handler_proxy()); 105 client_->DidAddInputHandler(routing_id, wrapper->input_handler_proxy());
101 input_handlers_.add(routing_id, std::move(wrapper)); 106 input_handlers_.add(routing_id, std::move(wrapper));
102 } 107 }
103 108
104 void InputHandlerManager::RemoveInputHandler(int routing_id) { 109 void InputHandlerManager::RemoveInputHandler(int routing_id) {
105 DCHECK(task_runner_->BelongsToCurrentThread()); 110 DCHECK(task_runner_->BelongsToCurrentThread());
106 DCHECK(input_handlers_.contains(routing_id)); 111 DCHECK(input_handlers_.contains(routing_id));
107 112
108 TRACE_EVENT0("input", "InputHandlerManager::RemoveInputHandler"); 113 TRACE_EVENT0("input", "InputHandlerManager::RemoveInputHandler");
109 114
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 186
182 void InputHandlerManager::DidStopFlinging(int routing_id) { 187 void InputHandlerManager::DidStopFlinging(int routing_id) {
183 client_->DidStopFlinging(routing_id); 188 client_->DidStopFlinging(routing_id);
184 } 189 }
185 190
186 void InputHandlerManager::DidAnimateForInput() { 191 void InputHandlerManager::DidAnimateForInput() {
187 renderer_scheduler_->DidAnimateForInputOnCompositorThread(); 192 renderer_scheduler_->DidAnimateForInputOnCompositorThread();
188 } 193 }
189 194
190 } // namespace content 195 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698