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

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

Issue 2943133002: Async Wheel Event with only the first one cancellable behind a flag. (Closed)
Patch Set: failing tests fixed. 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 648 matching lines...) Expand 10 before | Expand all | Expand 10 after
659 } 659 }
660 660
661 InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel( 661 InputHandlerProxy::EventDisposition InputHandlerProxy::HandleMouseWheel(
662 const WebMouseWheelEvent& wheel_event) { 662 const WebMouseWheelEvent& wheel_event) {
663 // Only call |CancelCurrentFling()| if a fling was active, as it will 663 // Only call |CancelCurrentFling()| if a fling was active, as it will
664 // otherwise disrupt an in-progress touch scroll. 664 // otherwise disrupt an in-progress touch scroll.
665 if (!wheel_event.has_precise_scrolling_deltas && fling_curve_) 665 if (!wheel_event.has_precise_scrolling_deltas && fling_curve_)
666 CancelCurrentFling(); 666 CancelCurrentFling();
667 667
668 InputHandlerProxy::EventDisposition result = DROP_EVENT; 668 InputHandlerProxy::EventDisposition result = DROP_EVENT;
669
670 if (wheel_event.dispatch_type == WebInputEvent::kEventNonBlocking) {
671 // The first wheel event in the sequence should be cancellable.
672 DCHECK(wheel_event.phase != WebMouseWheelEvent::kPhaseBegan);
673
674 DCHECK(mouse_wheel_result_ != kEventDispositionUndefined);
675 result = static_cast<EventDisposition>(mouse_wheel_result_);
676
677 if (wheel_event.phase == WebMouseWheelEvent::kPhaseEnded ||
678 wheel_event.phase == WebMouseWheelEvent::kPhaseCancelled ||
679 wheel_event.momentum_phase == WebMouseWheelEvent::kPhaseEnded ||
680 wheel_event.momentum_phase == WebMouseWheelEvent::kPhaseCancelled) {
681 mouse_wheel_result_ = kEventDispositionUndefined;
682 }
683
684 return result;
dtapuska 2017/06/20 20:53:14 So should we really be sending back undefined? ie;
sahel 2017/06/21 18:09:59 Done. I changed it to follow the blocking path if
685 }
686
669 cc::EventListenerProperties properties = 687 cc::EventListenerProperties properties =
670 input_handler_->GetEventListenerProperties( 688 input_handler_->GetEventListenerProperties(
671 cc::EventListenerClass::kMouseWheel); 689 cc::EventListenerClass::kMouseWheel);
672 switch (properties) { 690 switch (properties) {
673 case cc::EventListenerProperties::kPassive: 691 case cc::EventListenerProperties::kPassive:
674 result = DID_HANDLE_NON_BLOCKING; 692 result = DID_HANDLE_NON_BLOCKING;
675 break; 693 break;
676 case cc::EventListenerProperties::kBlockingAndPassive: 694 case cc::EventListenerProperties::kBlockingAndPassive:
677 case cc::EventListenerProperties::kBlocking: 695 case cc::EventListenerProperties::kBlocking:
678 result = DID_NOT_HANDLE; 696 result = DID_NOT_HANDLE;
(...skipping 982 matching lines...) Expand 10 before | Expand all | Expand 10 after
1661 scroll_elasticity_controller_->GetWeakPtr(), gesture_event, 1679 scroll_elasticity_controller_->GetWeakPtr(), gesture_event,
1662 scroll_result)); 1680 scroll_result));
1663 } 1681 }
1664 1682
1665 void InputHandlerProxy::SetTickClockForTesting( 1683 void InputHandlerProxy::SetTickClockForTesting(
1666 std::unique_ptr<base::TickClock> tick_clock) { 1684 std::unique_ptr<base::TickClock> tick_clock) {
1667 tick_clock_ = std::move(tick_clock); 1685 tick_clock_ = std::move(tick_clock);
1668 } 1686 }
1669 1687
1670 } // namespace ui 1688 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698