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

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

Issue 2907053004: GSB uses delta_hints to calculate scrolling chain. (Closed)
Patch Set: ignore_delta_hints_ deleted. 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 677 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 blink::WebGestureEvent::ScrollUnits::kPage) { 833 blink::WebGestureEvent::ScrollUnits::kPage) {
832 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD; 834 scroll_status.thread = cc::InputHandler::SCROLL_ON_MAIN_THREAD;
833 scroll_status.main_thread_scrolling_reasons = 835 scroll_status.main_thread_scrolling_reasons =
834 cc::MainThreadScrollingReason::kContinuingMainThreadScroll; 836 cc::MainThreadScrollingReason::kContinuingMainThreadScroll;
835 } else if (gesture_event.data.scroll_begin.target_viewport) { 837 } else if (gesture_event.data.scroll_begin.target_viewport) {
836 scroll_status = input_handler_->RootScrollBegin( 838 scroll_status = input_handler_->RootScrollBegin(
837 &scroll_state, GestureScrollInputType(gesture_event.source_device)); 839 &scroll_state, GestureScrollInputType(gesture_event.source_device));
838 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units != 840 } else if (ShouldAnimate(gesture_event.data.scroll_begin.delta_hint_units !=
839 blink::WebGestureEvent::ScrollUnits::kPixels)) { 841 blink::WebGestureEvent::ScrollUnits::kPixels)) {
840 DCHECK(!scroll_state.is_in_inertial_phase()); 842 DCHECK(!scroll_state.is_in_inertial_phase());
841 gfx::Point scroll_point(gesture_event.x, gesture_event.y); 843 scroll_status = input_handler_->ScrollAnimatedBegin(&scroll_state);
842 scroll_status = input_handler_->ScrollAnimatedBegin(scroll_point);
843 } else { 844 } else {
844 scroll_status = input_handler_->ScrollBegin( 845 scroll_status = input_handler_->ScrollBegin(
845 &scroll_state, GestureScrollInputType(gesture_event.source_device)); 846 &scroll_state, GestureScrollInputType(gesture_event.source_device));
846 } 847 }
847 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult", 848 UMA_HISTOGRAM_ENUMERATION("Renderer4.CompositorScrollHitTestResult",
848 scroll_status.thread, 849 scroll_status.thread,
849 cc::InputHandler::LAST_SCROLL_STATUS + 1); 850 cc::InputHandler::LAST_SCROLL_STATUS + 1);
850 851
851 RecordMainThreadScrollingReasons(gesture_event.source_device, 852 RecordMainThreadScrollingReasons(gesture_event.source_device,
852 scroll_status.main_thread_scrolling_reasons); 853 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, 1687 scroll_elasticity_controller_->GetWeakPtr(), gesture_event,
1687 scroll_result)); 1688 scroll_result));
1688 } 1689 }
1689 1690
1690 void InputHandlerProxy::SetTickClockForTesting( 1691 void InputHandlerProxy::SetTickClockForTesting(
1691 std::unique_ptr<base::TickClock> tick_clock) { 1692 std::unique_ptr<base::TickClock> tick_clock) {
1692 tick_clock_ = std::move(tick_clock); 1693 tick_clock_ = std::move(tick_clock);
1693 } 1694 }
1694 1695
1695 } // namespace ui 1696 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698