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

Side by Side Diff: content/browser/renderer_host/render_widget_host_input_event_router.cc

Issue 2785533003: Animated scroll shouldn't consume unhandled scrolls for OOPIFs. (Closed)
Patch Set: Fix Android compile. Created 3 years, 8 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "content/browser/renderer_host/render_widget_host_input_event_router.h" 5 #include "content/browser/renderer_host/render_widget_host_input_event_router.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/metrics/histogram_macros.h" 9 #include "base/metrics/histogram_macros.h"
10 #include "cc/quads/surface_draw_quad.h" 10 #include "cc/quads/surface_draw_quad.h"
(...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after
720 // need to wrap the diverted pinch events in a GestureScrollBegin/End. 720 // need to wrap the diverted pinch events in a GestureScrollBegin/End.
721 // TODO(wjmaclean,kenrb,tdresser): When scroll latching lands, we can 721 // TODO(wjmaclean,kenrb,tdresser): When scroll latching lands, we can
722 // revisit how this code should work. 722 // revisit how this code should work.
723 // https://crbug.com/526463 723 // https://crbug.com/526463
724 auto* rwhi = 724 auto* rwhi =
725 static_cast<RenderWidgetHostImpl*>(root_view->GetRenderWidgetHost()); 725 static_cast<RenderWidgetHostImpl*>(root_view->GetRenderWidgetHost());
726 // If the root view is the current gesture target, then we explicitly don't 726 // If the root view is the current gesture target, then we explicitly don't
727 // send a GestureScrollBegin, as by the time we see GesturePinchBegin there 727 // send a GestureScrollBegin, as by the time we see GesturePinchBegin there
728 // should have been one. 728 // should have been one.
729 if (root_view != touchscreen_gesture_target_.target && 729 if (root_view != touchscreen_gesture_target_.target &&
730 !rwhi->is_in_touchscreen_gesture_scroll()) { 730 !rwhi->is_in_gesture_scroll(
731 blink::WebGestureDevice::kWebGestureDeviceTouchscreen)) {
731 gesture_pinch_did_send_scroll_begin_ = true; 732 gesture_pinch_did_send_scroll_begin_ = true;
732 SendGestureScrollBegin(root_view, *event); 733 SendGestureScrollBegin(root_view, *event);
733 } 734 }
734 } 735 }
735 736
736 if (in_touchscreen_gesture_pinch_) { 737 if (in_touchscreen_gesture_pinch_) {
737 root_view->ProcessGestureEvent(*event, latency); 738 root_view->ProcessGestureEvent(*event, latency);
738 if (event->GetType() == blink::WebInputEvent::kGesturePinchEnd) { 739 if (event->GetType() == blink::WebInputEvent::kGesturePinchEnd) {
739 in_touchscreen_gesture_pinch_ = false; 740 in_touchscreen_gesture_pinch_ = false;
740 // If the root view wasn't already receiving the gesture stream, then we 741 // If the root view wasn't already receiving the gesture stream, then we
741 // need to wrap the diverted pinch events in a GestureScrollBegin/End. 742 // need to wrap the diverted pinch events in a GestureScrollBegin/End.
742 auto* rwhi = 743 auto* rwhi =
743 static_cast<RenderWidgetHostImpl*>(root_view->GetRenderWidgetHost()); 744 static_cast<RenderWidgetHostImpl*>(root_view->GetRenderWidgetHost());
744 if (root_view != touchscreen_gesture_target_.target && 745 if (root_view != touchscreen_gesture_target_.target &&
745 gesture_pinch_did_send_scroll_begin_ && 746 gesture_pinch_did_send_scroll_begin_ &&
746 rwhi->is_in_touchscreen_gesture_scroll()) { 747 rwhi->is_in_gesture_scroll(
748 blink::WebGestureDevice::kWebGestureDeviceTouchscreen)) {
747 SendGestureScrollEnd(root_view, *event); 749 SendGestureScrollEnd(root_view, *event);
748 } 750 }
749 gesture_pinch_did_send_scroll_begin_ = false; 751 gesture_pinch_did_send_scroll_begin_ = false;
750 } 752 }
751 return; 753 return;
752 } 754 }
753 755
754 // We use GestureTapDown to detect the start of a gesture sequence since there 756 // We use GestureTapDown to detect the start of a gesture sequence since there
755 // is no WebGestureEvent equivalent for ET_GESTURE_BEGIN. Note that this 757 // is no WebGestureEvent equivalent for ET_GESTURE_BEGIN. Note that this
756 // means the GestureFlingCancel that always comes between ET_GESTURE_BEGIN and 758 // means the GestureFlingCancel that always comes between ET_GESTURE_BEGIN and
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 if (!touchpad_gesture_target_.target) 827 if (!touchpad_gesture_target_.target)
826 return; 828 return;
827 829
828 // TODO(mohsen): Add tests to check event location. 830 // TODO(mohsen): Add tests to check event location.
829 event->x += touchpad_gesture_target_.delta.x(); 831 event->x += touchpad_gesture_target_.delta.x();
830 event->y += touchpad_gesture_target_.delta.y(); 832 event->y += touchpad_gesture_target_.delta.y();
831 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency); 833 touchpad_gesture_target_.target->ProcessGestureEvent(*event, latency);
832 } 834 }
833 835
834 } // namespace content 836 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698