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

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

Issue 2924953002: Ignore the rest of the scroll sequence if GSB is ignored. (Closed)
Patch Set: merged with master, redundant 'assert' deleted from function names. 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
« no previous file with comments | « ui/events/blink/input_handler_proxy.h ('k') | ui/events/blink/input_handler_proxy_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 : client_(client), 251 : client_(client),
252 input_handler_(input_handler), 252 input_handler_(input_handler),
253 deferred_fling_cancel_time_seconds_(0), 253 deferred_fling_cancel_time_seconds_(0),
254 synchronous_input_handler_(nullptr), 254 synchronous_input_handler_(nullptr),
255 allow_root_animate_(true), 255 allow_root_animate_(true),
256 #ifndef NDEBUG 256 #ifndef NDEBUG
257 expect_scroll_update_end_(false), 257 expect_scroll_update_end_(false),
258 #endif 258 #endif
259 gesture_scroll_on_impl_thread_(false), 259 gesture_scroll_on_impl_thread_(false),
260 gesture_pinch_on_impl_thread_(false), 260 gesture_pinch_on_impl_thread_(false),
261 scroll_sequence_ignored_(false),
261 fling_may_be_active_on_main_thread_(false), 262 fling_may_be_active_on_main_thread_(false),
262 disallow_horizontal_fling_scroll_(false), 263 disallow_horizontal_fling_scroll_(false),
263 disallow_vertical_fling_scroll_(false), 264 disallow_vertical_fling_scroll_(false),
264 has_fling_animation_started_(false), 265 has_fling_animation_started_(false),
265 smooth_scroll_enabled_(false), 266 smooth_scroll_enabled_(false),
266 uma_latency_reporting_enabled_(base::TimeTicks::IsHighResolution()), 267 uma_latency_reporting_enabled_(base::TimeTicks::IsHighResolution()),
267 touchpad_and_wheel_scroll_latching_enabled_( 268 touchpad_and_wheel_scroll_latching_enabled_(
268 touchpad_and_wheel_scroll_latching_enabled), 269 touchpad_and_wheel_scroll_latching_enabled),
269 touch_result_(kEventDispositionUndefined), 270 touch_result_(kEventDispositionUndefined),
270 mouse_wheel_result_(kEventDispositionUndefined), 271 mouse_wheel_result_(kEventDispositionUndefined),
(...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 "InputHandlerProxy::handle_input gesture scroll", 850 "InputHandlerProxy::handle_input gesture scroll",
850 TRACE_EVENT_SCOPE_THREAD); 851 TRACE_EVENT_SCOPE_THREAD);
851 gesture_scroll_on_impl_thread_ = true; 852 gesture_scroll_on_impl_thread_ = true;
852 result = DID_HANDLE; 853 result = DID_HANDLE;
853 break; 854 break;
854 case cc::InputHandler::SCROLL_UNKNOWN: 855 case cc::InputHandler::SCROLL_UNKNOWN:
855 case cc::InputHandler::SCROLL_ON_MAIN_THREAD: 856 case cc::InputHandler::SCROLL_ON_MAIN_THREAD:
856 result = DID_NOT_HANDLE; 857 result = DID_NOT_HANDLE;
857 break; 858 break;
858 case cc::InputHandler::SCROLL_IGNORED: 859 case cc::InputHandler::SCROLL_IGNORED:
860 scroll_sequence_ignored_ = true;
859 result = DROP_EVENT; 861 result = DROP_EVENT;
860 break; 862 break;
861 } 863 }
862 if (scroll_elasticity_controller_ && result != DID_NOT_HANDLE) 864 if (scroll_elasticity_controller_ && result != DID_NOT_HANDLE)
863 HandleScrollElasticityOverscroll(gesture_event, 865 HandleScrollElasticityOverscroll(gesture_event,
864 cc::InputHandlerScrollResult()); 866 cc::InputHandlerScrollResult());
865 867
866 return result; 868 return result;
867 } 869 }
868 870
869 InputHandlerProxy::EventDisposition 871 InputHandlerProxy::EventDisposition
870 InputHandlerProxy::HandleGestureScrollUpdate( 872 InputHandlerProxy::HandleGestureScrollUpdate(
871 const WebGestureEvent& gesture_event) { 873 const WebGestureEvent& gesture_event) {
872 #ifndef NDEBUG 874 #ifndef NDEBUG
873 DCHECK(expect_scroll_update_end_); 875 DCHECK(expect_scroll_update_end_);
874 #endif 876 #endif
877
878 if (scroll_sequence_ignored_)
879 return DROP_EVENT;
880
875 if (!gesture_scroll_on_impl_thread_ && !gesture_pinch_on_impl_thread_) 881 if (!gesture_scroll_on_impl_thread_ && !gesture_pinch_on_impl_thread_)
876 return DID_NOT_HANDLE; 882 return DID_NOT_HANDLE;
877 883
878 cc::ScrollState scroll_state = CreateScrollStateForGesture(gesture_event); 884 cc::ScrollState scroll_state = CreateScrollStateForGesture(gesture_event);
879 gfx::Point scroll_point(gesture_event.x, gesture_event.y); 885 gfx::Point scroll_point(gesture_event.x, gesture_event.y);
880 gfx::Vector2dF scroll_delta(-gesture_event.data.scroll_update.delta_x, 886 gfx::Vector2dF scroll_delta(-gesture_event.data.scroll_update.delta_x,
881 -gesture_event.data.scroll_update.delta_y); 887 -gesture_event.data.scroll_update.delta_y);
882 888
883 if (ShouldAnimate(gesture_event.data.scroll_update.delta_units != 889 if (ShouldAnimate(gesture_event.data.scroll_update.delta_units !=
884 blink::WebGestureEvent::ScrollUnits::kPixels)) { 890 blink::WebGestureEvent::ScrollUnits::kPixels)) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
926 expect_scroll_update_end_ = false; 932 expect_scroll_update_end_ = false;
927 #endif 933 #endif
928 if (ShouldAnimate(gesture_event.data.scroll_end.delta_units != 934 if (ShouldAnimate(gesture_event.data.scroll_end.delta_units !=
929 blink::WebGestureEvent::ScrollUnits::kPixels)) { 935 blink::WebGestureEvent::ScrollUnits::kPixels)) {
930 // Do nothing if the scroll is being animated; the scroll animation will 936 // Do nothing if the scroll is being animated; the scroll animation will
931 // generate the ScrollEnd when it is done. 937 // generate the ScrollEnd when it is done.
932 } else { 938 } else {
933 cc::ScrollState scroll_state = CreateScrollStateForGesture(gesture_event); 939 cc::ScrollState scroll_state = CreateScrollStateForGesture(gesture_event);
934 input_handler_->ScrollEnd(&scroll_state); 940 input_handler_->ScrollEnd(&scroll_state);
935 } 941 }
942
943 if (scroll_sequence_ignored_) {
944 scroll_sequence_ignored_ = false;
945 return DROP_EVENT;
946 }
947
936 if (!gesture_scroll_on_impl_thread_) 948 if (!gesture_scroll_on_impl_thread_)
937 return DID_NOT_HANDLE; 949 return DID_NOT_HANDLE;
938 950
939 if (scroll_elasticity_controller_) 951 if (scroll_elasticity_controller_)
940 HandleScrollElasticityOverscroll(gesture_event, 952 HandleScrollElasticityOverscroll(gesture_event,
941 cc::InputHandlerScrollResult()); 953 cc::InputHandlerScrollResult());
942 954
943 gesture_scroll_on_impl_thread_ = false; 955 gesture_scroll_on_impl_thread_ = false;
944 return DID_HANDLE; 956 return DID_HANDLE;
945 } 957 }
(...skipping 715 matching lines...) Expand 10 before | Expand all | Expand 10 after
1661 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, 1673 scroll_elasticity_controller_->GetWeakPtr(), gesture_event,
1662 scroll_result)); 1674 scroll_result));
1663 } 1675 }
1664 1676
1665 void InputHandlerProxy::SetTickClockForTesting( 1677 void InputHandlerProxy::SetTickClockForTesting(
1666 std::unique_ptr<base::TickClock> tick_clock) { 1678 std::unique_ptr<base::TickClock> tick_clock) {
1667 tick_clock_ = std::move(tick_clock); 1679 tick_clock_ = std::move(tick_clock);
1668 } 1680 }
1669 1681
1670 } // namespace ui 1682 } // namespace ui
OLDNEW
« no previous file with comments | « ui/events/blink/input_handler_proxy.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