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

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

Issue 2756893002: Add Keyboard Latency UMA Metrics. (Closed)
Patch Set: Fix test issue 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 (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 8
9 #include <set> 9 #include <set>
10 #include <tuple> 10 #include <tuple>
(...skipping 1138 matching lines...) Expand 10 before | Expand all | Expand 10 after
1149 view_->ProcessAckedTouchEvent( 1149 view_->ProcessAckedTouchEvent(
1150 touch_with_latency, INPUT_EVENT_ACK_STATE_CONSUMED); 1150 touch_with_latency, INPUT_EVENT_ACK_STATE_CONSUMED);
1151 } 1151 }
1152 return; 1152 return;
1153 } 1153 }
1154 1154
1155 DispatchInputEventWithLatencyInfo(touch_event, &touch_with_latency.latency); 1155 DispatchInputEventWithLatencyInfo(touch_event, &touch_with_latency.latency);
1156 input_router_->SendTouchEvent(touch_with_latency); 1156 input_router_->SendTouchEvent(touch_with_latency);
1157 } 1157 }
1158 1158
1159 void RenderWidgetHostImpl::ForwardKeyboardEvent( 1159 void RenderWidgetHostImpl::ForwardKeyboardEventWithLatencyInfo(
1160 const NativeWebKeyboardEvent& key_event) { 1160 const NativeWebKeyboardEvent& key_event,
1161 ForwardKeyboardEventWithCommands(key_event, nullptr, nullptr); 1161 const ui::LatencyInfo& ui_latency) {
1162 ForwardKeyboardEventWithCommands(key_event, ui_latency, nullptr, nullptr);
1162 } 1163 }
1163 1164
1164 void RenderWidgetHostImpl::ForwardKeyboardEventWithCommands( 1165 void RenderWidgetHostImpl::ForwardKeyboardEventWithCommands(
1165 const NativeWebKeyboardEvent& key_event, 1166 const NativeWebKeyboardEvent& key_event,
1167 const ui::LatencyInfo& ui_latency,
1166 const std::vector<EditCommand>* commands, 1168 const std::vector<EditCommand>* commands,
1167 bool* update_event) { 1169 bool* update_event) {
1168 TRACE_EVENT0("input", "RenderWidgetHostImpl::ForwardKeyboardEvent"); 1170 TRACE_EVENT0("input", "RenderWidgetHostImpl::ForwardKeyboardEvent");
1169 if (owner_delegate_ && 1171 if (owner_delegate_ &&
1170 !owner_delegate_->MayRenderWidgetForwardKeyboardEvent(key_event)) { 1172 !owner_delegate_->MayRenderWidgetForwardKeyboardEvent(key_event)) {
1171 return; 1173 return;
1172 } 1174 }
1173 1175
1174 if (ShouldDropInputEvents()) 1176 if (ShouldDropInputEvents())
1175 return; 1177 return;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1232 is_shortcut = true; 1234 is_shortcut = true;
1233 break; 1235 break;
1234 } 1236 }
1235 1237
1236 if (key_event.type() == WebKeyboardEvent::RawKeyDown) 1238 if (key_event.type() == WebKeyboardEvent::RawKeyDown)
1237 suppress_events_until_keydown_ = false; 1239 suppress_events_until_keydown_ = false;
1238 } 1240 }
1239 1241
1240 if (touch_emulator_ && touch_emulator_->HandleKeyboardEvent(key_event)) 1242 if (touch_emulator_ && touch_emulator_->HandleKeyboardEvent(key_event))
1241 return; 1243 return;
1242 ui::LatencyInfo latency_info(ui::SourceEventType::OTHER);
1243 NativeWebKeyboardEventWithLatencyInfo key_event_with_latency(key_event, 1244 NativeWebKeyboardEventWithLatencyInfo key_event_with_latency(key_event,
1244 latency_info); 1245 ui_latency);
1245 key_event_with_latency.event.isBrowserShortcut = is_shortcut; 1246 key_event_with_latency.event.isBrowserShortcut = is_shortcut;
1246 DispatchInputEventWithLatencyInfo(key_event, &key_event_with_latency.latency); 1247 DispatchInputEventWithLatencyInfo(key_event, &key_event_with_latency.latency);
1247 // TODO(foolip): |InputRouter::SendKeyboardEvent()| may filter events, in 1248 // TODO(foolip): |InputRouter::SendKeyboardEvent()| may filter events, in
1248 // which the commands will be treated as belonging to the next key event. 1249 // which the commands will be treated as belonging to the next key event.
1249 // InputMsg_SetEditCommandsForNextKeyEvent should only be sent if 1250 // InputMsg_SetEditCommandsForNextKeyEvent should only be sent if
1250 // InputMsg_HandleInputEvent is, but has to be sent first. 1251 // InputMsg_HandleInputEvent is, but has to be sent first.
1251 // https://crbug.com/684298 1252 // https://crbug.com/684298
1252 if (commands && !commands->empty()) { 1253 if (commands && !commands->empty()) {
1253 Send( 1254 Send(
1254 new InputMsg_SetEditCommandsForNextKeyEvent(GetRoutingID(), *commands)); 1255 new InputMsg_SetEditCommandsForNextKeyEvent(GetRoutingID(), *commands));
(...skipping 1385 matching lines...) Expand 10 before | Expand all | Expand 10 after
2640 2641
2641 // After navigation, if a frame belonging to the new page is received, stop 2642 // After navigation, if a frame belonging to the new page is received, stop
2642 // the timer that triggers clearing the graphics of the last page. 2643 // the timer that triggers clearing the graphics of the last page.
2643 if (last_received_content_source_id_ >= current_content_source_id_ && 2644 if (last_received_content_source_id_ >= current_content_source_id_ &&
2644 new_content_rendering_timeout_->IsRunning()) { 2645 new_content_rendering_timeout_->IsRunning()) {
2645 new_content_rendering_timeout_->Stop(); 2646 new_content_rendering_timeout_->Stop();
2646 } 2647 }
2647 } 2648 }
2648 2649
2649 } // namespace content 2650 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698