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

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

Issue 1748553002: Replace MouseWheel events with GestureScrollBegin in WebContentsObserver::DidGetUserInteraction (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@remove-didgetusergesture
Patch Set: Created 4 years, 9 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_impl.h" 5 #include "content/browser/renderer_host/render_widget_host_impl.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 using blink::WebGestureEvent; 91 using blink::WebGestureEvent;
92 using blink::WebInputEvent; 92 using blink::WebInputEvent;
93 using blink::WebKeyboardEvent; 93 using blink::WebKeyboardEvent;
94 using blink::WebMouseEvent; 94 using blink::WebMouseEvent;
95 using blink::WebMouseWheelEvent; 95 using blink::WebMouseWheelEvent;
96 using blink::WebTextDirection; 96 using blink::WebTextDirection;
97 97
98 namespace content { 98 namespace content {
99 namespace { 99 namespace {
100 100
101 // The amount of time after a mouse wheel event is sent to the delegate
102 // OnUserInteraction method before another mouse wheel event will be sent. This
103 // interval is used by the Blink EventHandler in its orthogonal heuristic for
104 // detecting the end of a scroll event (if no event has been seen in 0.1
105 // seconds, send an end scroll).
106 const double kMouseWheelCoalesceIntervalInSeconds = 0.1;
107
108 bool g_check_for_pending_resize_ack = true; 101 bool g_check_for_pending_resize_ack = true;
109 102
110 // <process id, routing id> 103 // <process id, routing id>
111 using RenderWidgetHostID = std::pair<int32_t, int32_t>; 104 using RenderWidgetHostID = std::pair<int32_t, int32_t>;
112 using RoutingIDWidgetMap = 105 using RoutingIDWidgetMap =
113 base::hash_map<RenderWidgetHostID, RenderWidgetHostImpl*>; 106 base::hash_map<RenderWidgetHostID, RenderWidgetHostImpl*>;
114 base::LazyInstance<RoutingIDWidgetMap> g_routing_id_widget_map = 107 base::LazyInstance<RoutingIDWidgetMap> g_routing_id_widget_map =
115 LAZY_INSTANCE_INITIALIZER; 108 LAZY_INSTANCE_INITIALIZER;
116 109
117 // Implements the RenderWidgetHostIterator interface. It keeps a list of 110 // Implements the RenderWidgetHostIterator interface. It keeps a list of
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 is_in_gesture_scroll_(false), 204 is_in_gesture_scroll_(false),
212 received_paint_after_load_(false), 205 received_paint_after_load_(false),
213 next_browser_snapshot_id_(1), 206 next_browser_snapshot_id_(1),
214 owned_by_render_frame_host_(false), 207 owned_by_render_frame_host_(false),
215 is_focused_(false), 208 is_focused_(false),
216 scale_input_to_viewport_(IsUseZoomForDSFEnabled()), 209 scale_input_to_viewport_(IsUseZoomForDSFEnabled()),
217 hung_renderer_delay_( 210 hung_renderer_delay_(
218 base::TimeDelta::FromMilliseconds(kHungRendererDelayMs)), 211 base::TimeDelta::FromMilliseconds(kHungRendererDelayMs)),
219 new_content_rendering_delay_( 212 new_content_rendering_delay_(
220 base::TimeDelta::FromMilliseconds(kNewContentRenderingDelayMs)), 213 base::TimeDelta::FromMilliseconds(kNewContentRenderingDelayMs)),
221 mouse_wheel_coalesce_timer_(new base::ElapsedTimer()),
222 weak_factory_(this) { 214 weak_factory_(this) {
223 CHECK(delegate_); 215 CHECK(delegate_);
224 CHECK_NE(MSG_ROUTING_NONE, routing_id_); 216 CHECK_NE(MSG_ROUTING_NONE, routing_id_);
225 217
226 std::pair<RoutingIDWidgetMap::iterator, bool> result = 218 std::pair<RoutingIDWidgetMap::iterator, bool> result =
227 g_routing_id_widget_map.Get().insert(std::make_pair( 219 g_routing_id_widget_map.Get().insert(std::make_pair(
228 RenderWidgetHostID(process->GetID(), routing_id_), this)); 220 RenderWidgetHostID(process->GetID(), routing_id_), this));
229 CHECK(result.second) << "Inserting a duplicate item!"; 221 CHECK(result.second) << "Inserting a duplicate item!";
230 process_->AddRoute(routing_id_, this); 222 process_->AddRoute(routing_id_, this);
231 223
(...skipping 1661 matching lines...) Expand 10 before | Expand all | Expand 10 after
1893 const blink::WebInputEvent& event, const ui::LatencyInfo& latency_info) { 1885 const blink::WebInputEvent& event, const ui::LatencyInfo& latency_info) {
1894 // Don't ignore touch cancel events, since they may be sent while input 1886 // Don't ignore touch cancel events, since they may be sent while input
1895 // events are being ignored in order to keep the renderer from getting 1887 // events are being ignored in order to keep the renderer from getting
1896 // confused about how many touches are active. 1888 // confused about how many touches are active.
1897 if (ShouldDropInputEvents() && event.type != WebInputEvent::TouchCancel) 1889 if (ShouldDropInputEvents() && event.type != WebInputEvent::TouchCancel)
1898 return INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS; 1890 return INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS;
1899 1891
1900 if (!process_->HasConnection()) 1892 if (!process_->HasConnection())
1901 return INPUT_EVENT_ACK_STATE_UNKNOWN; 1893 return INPUT_EVENT_ACK_STATE_UNKNOWN;
1902 1894
1903 if (delegate_) { 1895 if (delegate_ && (event.type == WebInputEvent::MouseDown ||
1904 if (event.type == WebInputEvent::MouseDown || 1896 event.type == WebInputEvent::GestureScrollBegin ||
1905 event.type == WebInputEvent::GestureTapDown || 1897 event.type == WebInputEvent::GestureTapDown ||
1906 event.type == WebInputEvent::RawKeyDown) { 1898 event.type == WebInputEvent::RawKeyDown)) {
1907 delegate_->OnUserInteraction(this, event.type); 1899 delegate_->OnUserInteraction(this, event.type);
1908 } else if (event.type == WebInputEvent::MouseWheel) {
1909 if (mouse_wheel_coalesce_timer_->Elapsed().InSecondsF() >
1910 kMouseWheelCoalesceIntervalInSeconds) {
1911 // TODO(dominickn): once GestureScrollBegin has landed on all platforms,
1912 // replace this branch and remove.
1913 delegate_->OnUserInteraction(this, event.type);
1914 }
1915
1916 mouse_wheel_coalesce_timer_.reset(new base::ElapsedTimer());
1917 }
1918 } 1900 }
1919 1901
1920 return view_ ? view_->FilterInputEvent(event) 1902 return view_ ? view_->FilterInputEvent(event)
1921 : INPUT_EVENT_ACK_STATE_NOT_CONSUMED; 1903 : INPUT_EVENT_ACK_STATE_NOT_CONSUMED;
1922 } 1904 }
1923 1905
1924 void RenderWidgetHostImpl::IncrementInFlightEventCount() { 1906 void RenderWidgetHostImpl::IncrementInFlightEventCount() {
1925 increment_in_flight_event_count(); 1907 increment_in_flight_event_count();
1926 if (!is_hidden_) 1908 if (!is_hidden_)
1927 StartHangMonitorTimeout(hung_renderer_delay_); 1909 StartHangMonitorTimeout(hung_renderer_delay_);
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
2242 } 2224 }
2243 2225
2244 #if defined(OS_WIN) 2226 #if defined(OS_WIN)
2245 gfx::NativeViewAccessible 2227 gfx::NativeViewAccessible
2246 RenderWidgetHostImpl::GetParentNativeViewAccessible() { 2228 RenderWidgetHostImpl::GetParentNativeViewAccessible() {
2247 return delegate_ ? delegate_->GetParentNativeViewAccessible() : NULL; 2229 return delegate_ ? delegate_->GetParentNativeViewAccessible() : NULL;
2248 } 2230 }
2249 #endif 2231 #endif
2250 2232
2251 } // namespace content 2233 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698