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

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;
144 scroll_state_data.is_beginning = true; 146 scroll_state_data.is_beginning = true;
145 // On Mac, a GestureScrollBegin in the inertial phase indicates a fling 147 // On Mac, a GestureScrollBegin in the inertial phase indicates a fling
146 // start. 148 // start.
147 scroll_state_data.is_in_inertial_phase = 149 scroll_state_data.is_in_inertial_phase =
148 (event.data.scroll_begin.inertial_phase == 150 (event.data.scroll_begin.inertial_phase ==
149 WebGestureEvent::kMomentumPhase); 151 WebGestureEvent::kMomentumPhase);
150 break; 152 break;
151 case WebInputEvent::kGestureFlingStart: 153 case WebInputEvent::kGestureFlingStart:
152 scroll_state_data.velocity_x = event.data.fling_start.velocity_x; 154 scroll_state_data.velocity_x = event.data.fling_start.velocity_x;
153 scroll_state_data.velocity_y = event.data.fling_start.velocity_y; 155 scroll_state_data.velocity_y = event.data.fling_start.velocity_y;
(...skipping 695 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 blink::WebGestureEvent::ScrollUnits::kPage) { 851 blink::WebGestureEvent::ScrollUnits::kPage) {
850 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD; 852 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD;
851 scroll_status.main_thread_scrolling_reasons = 853 scroll_status.main_thread_scrolling_reasons =
852 cc::MainThreadScrollingReason::kContinuingMainThreadScroll; 854 cc::MainThreadScrollingReason::kContinuingMainThreadScroll;
853 } else if (gesture_event.data.scroll_begin.target_viewport) { 855 } else if (gesture_event.data.scroll_begin.target_viewport) {
854 scroll_status = input_handler_->RootScrollBegin( 856 scroll_status = input_handler_->RootScrollBegin(
855 &scroll_state, GestureScrollInputType(gesture_event.source_device)); 857 &scroll_state, GestureScrollInputType(gesture_event.source_device));
856 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units != 858 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units !=
857 blink::WebGestureEvent::ScrollUnits::kPixels)) { 859 blink::WebGestureEvent::ScrollUnits::kPixels)) {
858 DCHECK(!scroll_state.is_in_inertial_phase()); 860 DCHECK(!scroll_state.is_in_inertial_phase());
859 gfx::Point scroll_point(gesture_event.x, gesture_event.y); 861 scroll_status = input_handler_->ScrollAnimatedBegin(&scroll_state);
860 scroll_status = input_handler_->ScrollAnimatedBegin(scroll_point);
861 } else { 862 } else {
862 scroll_status = input_handler_->ScrollBegin( 863 scroll_status = input_handler_->ScrollBegin(
863 &scroll_state, GestureScrollInputType(gesture_event.source_device)); 864 &scroll_state, GestureScrollInputType(gesture_event.source_device));
864 } 865 }
865 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult", 866 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult",
866 scroll_status.thread, 867 scroll_status.thread,
867 cc::InputHandler::LAST_SCROLL_STATUS + 1); 868 cc::InputHandler::LAST_SCROLL_STATUS + 1);
868 869
869 RecordMainThreadScrollingReasons(gesture_event.source_device, 870 RecordMainThreadScrollingReasons(gesture_event.source_device,
870 scroll_status.main_thread_scrolling_reasons); 871 scroll_status.main_thread_scrolling_reasons);
(...skipping 833 matching lines...) Expand 10 before | Expand all | Expand 10 after
1704 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, 1705 scroll_elasticity_controller_->GetWeakPtr(), gesture_event,
1705 scroll_result)); 1706 scroll_result));
1706 } 1707 }
1707 1708
1708 void InputHandlerProxy::SetTickClockForTesting( 1709 void InputHandlerProxy::SetTickClockForTesting(
1709 std::unique_ptr<base::TickClock> tick_clock) { 1710 std::unique_ptr<base::TickClock> tick_clock) {
1710 tick_clock_ = std::move(tick_clock); 1711 tick_clock_ = std::move(tick_clock);
1711 } 1712 }
1712 1713
1713 } // namespace ui 1714 } // namespace ui
OLDNEW
« no previous file with comments | « third_party/WebKit/public/platform/WebGestureEvent.h ('k') | ui/events/blink/input_handler_proxy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698