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

Side by Side Diff: ui/events/blink/input_handler_proxy.cc

Issue 2907053004: GSB uses delta_hints to calculate scrolling chain. (Closed)
Patch Set: Merge branch 'master' into GSB_checks_delta_hints Created 3 years, 5 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 "ui/events/blink/input_handler_proxy.h" 5 #include "ui/events/blink/input_handler_proxy.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 scroll_begin_event.data.scroll_begin.delta_y_hint = 0; 134 scroll_begin_event.data.scroll_begin.delta_y_hint = 0;
135 return scroll_begin_event; 135 return scroll_begin_event;
136 } 136 }
137 137
138 cc::ScrollState CreateScrollStateForGesture(const WebGestureEvent& event) { 138 cc::ScrollState CreateScrollStateForGesture(const WebGestureEvent& event) {
139 cc::ScrollStateData scroll_state_data; 139 cc::ScrollStateData scroll_state_data;
140 switch (event.GetType()) { 140 switch (event.GetType()) {
141 case WebInputEvent::kGestureScrollBegin: 141 case WebInputEvent::kGestureScrollBegin:
142 scroll_state_data.position_x = event.x; 142 scroll_state_data.position_x = event.x;
143 scroll_state_data.position_y = event.y; 143 scroll_state_data.position_y = event.y;
144 scroll_state_data.delta_x_hint = -event.data.scroll_begin.delta_x_hint;
145 scroll_state_data.delta_y_hint = -event.data.scroll_begin.delta_y_hint;
146 scroll_state_data.ignore_delta_hints =
147 event.data.scroll_begin.ignore_delta_hints;
144 scroll_state_data.is_beginning = true; 148 scroll_state_data.is_beginning = true;
145 // On Mac, a GestureScrollBegin in the inertial phase indicates a fling 149 // On Mac, a GestureScrollBegin in the inertial phase indicates a fling
146 // start. 150 // start.
147 scroll_state_data.is_in_inertial_phase = 151 scroll_state_data.is_in_inertial_phase =
148 (event.data.scroll_begin.inertial_phase == 152 (event.data.scroll_begin.inertial_phase ==
149 WebGestureEvent::kMomentumPhase); 153 WebGestureEvent::kMomentumPhase);
150 break; 154 break;
151 case WebInputEvent::kGestureFlingStart: 155 case WebInputEvent::kGestureFlingStart:
152 scroll_state_data.velocity_x = event.data.fling_start.velocity_x; 156 scroll_state_data.velocity_x = event.data.fling_start.velocity_x;
153 scroll_state_data.velocity_y = event.data.fling_start.velocity_y; 157 scroll_state_data.velocity_y = event.data.fling_start.velocity_y;
(...skipping 677 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 blink::WebGestureEvent::ScrollUnits::kPage) { 835 blink::WebGestureEvent::ScrollUnits::kPage) {
832 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD; 836 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD;
833 scroll_status.main_thread_scrolling_reasons = 837 scroll_status.main_thread_scrolling_reasons =
834 cc::MainThreadScrollingReason::kContinuingMainThreadScroll; 838 cc::MainThreadScrollingReason::kContinuingMainThreadScroll;
835 } else if (gesture_event.data.scroll_begin.target_viewport) { 839 } else if (gesture_event.data.scroll_begin.target_viewport) {
836 scroll_status = input_handler_->RootScrollBegin( 840 scroll_status = input_handler_->RootScrollBegin(
837 &scroll_state, GestureScrollInputType(gesture_event.source_device)); 841 &scroll_state, GestureScrollInputType(gesture_event.source_device));
838 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units != 842 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units !=
839 blink::WebGestureEvent::ScrollUnits::kPixels)) { 843 blink::WebGestureEvent::ScrollUnits::kPixels)) {
840 DCHECK(!scroll_state.is_in_inertial_phase()); 844 DCHECK(!scroll_state.is_in_inertial_phase());
841 gfx::Point scroll_point(gesture_event.x, gesture_event.y); 845 scroll_status = input_handler_->ScrollAnimatedBegin(&scroll_state);
842 scroll_status = input_handler_->ScrollAnimatedBegin(scroll_point);
843 } else { 846 } else {
844 scroll_status = input_handler_->ScrollBegin( 847 scroll_status = input_handler_->ScrollBegin(
845 &scroll_state, GestureScrollInputType(gesture_event.source_device)); 848 &scroll_state, GestureScrollInputType(gesture_event.source_device));
846 } 849 }
847 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult", 850 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult",
848 scroll_status.thread, 851 scroll_status.thread,
849 cc::InputHandler::LAST_SCROLL_STATUS + 1); 852 cc::InputHandler::LAST_SCROLL_STATUS + 1);
850 853
851 RecordMainThreadScrollingReasons(gesture_event.source_device, 854 RecordMainThreadScrollingReasons(gesture_event.source_device,
852 scroll_status.main_thread_scrolling_reasons); 855 scroll_status.main_thread_scrolling_reasons);
(...skipping 833 matching lines...) Expand 10 before | Expand all | Expand 10 after
1686 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, 1689 scroll_elasticity_controller_->GetWeakPtr(), gesture_event,
1687 scroll_result)); 1690 scroll_result));
1688 } 1691 }
1689 1692
1690 void InputHandlerProxy::SetTickClockForTesting( 1693 void InputHandlerProxy::SetTickClockForTesting(
1691 std::unique_ptr<base::TickClock> tick_clock) { 1694 std::unique_ptr<base::TickClock> tick_clock) {
1692 tick_clock_ = std::move(tick_clock); 1695 tick_clock_ = std::move(tick_clock);
1693 } 1696 }
1694 1697
1695 } // namespace ui 1698 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698