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

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

Issue 2907053004: GSB uses delta_hints to calculate scrolling chain. (Closed)
Patch Set: debug version Created 3 years, 6 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;
bokan 2017/05/30 15:57:44 The delta on a scroll_begin is called a hint, but
sahel 2017/05/30 16:02:06 I had this implementation initially, but ended up
bokan 2017/05/30 16:05:29 Tim is the expert here so I'll defer to him but pe
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 664 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 blink::WebGestureEvent::ScrollUnits::kPage) { 822 blink::WebGestureEvent::ScrollUnits::kPage) {
819 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD; 823 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD;
820 scroll_status.main_thread_scrolling_reasons = 824 scroll_status.main_thread_scrolling_reasons =
821 cc::MainThreadScrollingReason::kContinuingMainThreadScroll; 825 cc::MainThreadScrollingReason::kContinuingMainThreadScroll;
822 } else if (gesture_event.data.scroll_begin.target_viewport) { 826 } else if (gesture_event.data.scroll_begin.target_viewport) {
823 scroll_status = input_handler_->RootScrollBegin( 827 scroll_status = input_handler_->RootScrollBegin(
824 &scroll_state, GestureScrollInputType(gesture_event.source_device)); 828 &scroll_state, GestureScrollInputType(gesture_event.source_device));
825 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units != 829 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units !=
826 blink::WebGestureEvent::ScrollUnits::kPixels)) { 830 blink::WebGestureEvent::ScrollUnits::kPixels)) {
827 DCHECK(!scroll_state.is_in_inertial_phase()); 831 DCHECK(!scroll_state.is_in_inertial_phase());
828 gfx::Point scroll_point(gesture_event.x, gesture_event.y); 832 scroll_status = input_handler_->ScrollAnimatedBegin(&scroll_state);
829 scroll_status = input_handler_->ScrollAnimatedBegin(scroll_point);
830 } else { 833 } else {
831 scroll_status = input_handler_->ScrollBegin( 834 scroll_status = input_handler_->ScrollBegin(
832 &scroll_state, GestureScrollInputType(gesture_event.source_device)); 835 &scroll_state, GestureScrollInputType(gesture_event.source_device));
833 } 836 }
834 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult", 837 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult",
835 scroll_status.thread, 838 scroll_status.thread,
836 cc::InputHandler::LAST_SCROLL_STATUS + 1); 839 cc::InputHandler::LAST_SCROLL_STATUS + 1);
837 840
838 RecordMainThreadScrollingReasons(gesture_event.source_device, 841 RecordMainThreadScrollingReasons(gesture_event.source_device,
839 scroll_status.main_thread_scrolling_reasons); 842 scroll_status.main_thread_scrolling_reasons);
(...skipping 804 matching lines...) Expand 10 before | Expand all | Expand 10 after
1644 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, 1647 scroll_elasticity_controller_->GetWeakPtr(), gesture_event,
1645 scroll_result)); 1648 scroll_result));
1646 } 1649 }
1647 1650
1648 void InputHandlerProxy::SetTickClockForTesting( 1651 void InputHandlerProxy::SetTickClockForTesting(
1649 std::unique_ptr<base::TickClock> tick_clock) { 1652 std::unique_ptr<base::TickClock> tick_clock) {
1650 tick_clock_ = std::move(tick_clock); 1653 tick_clock_ = std::move(tick_clock);
1651 } 1654 }
1652 1655
1653 } // namespace ui 1656 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698