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

Unified Diff: content/browser/renderer_host/render_widget_host_impl.cc

Issue 2644843004: Send keyboard-derived commands only if the key events are sent (Closed)
Patch Set: Send keyboard-derived commands only if the key events are sent Created 3 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/render_widget_host_impl.cc
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index 5e57094a1ac9f7a891f91b77b7cf643fce0768ed..5524c051001addafc6e44d8ca50c56a803375382 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -1181,6 +1181,12 @@ void RenderWidgetHostImpl::ForwardTouchEventWithLatencyInfo(
void RenderWidgetHostImpl::ForwardKeyboardEvent(
const NativeWebKeyboardEvent& key_event) {
+ ForwardKeyboardEventWithCommands(key_event, nullptr);
+}
+
+void RenderWidgetHostImpl::ForwardKeyboardEventWithCommands(
+ const NativeWebKeyboardEvent& key_event,
+ const std::vector<EditCommand>* commands) {
TRACE_EVENT0("input", "RenderWidgetHostImpl::ForwardKeyboardEvent");
if (owner_delegate_ &&
!owner_delegate_->MayRenderWidgetForwardKeyboardEvent(key_event)) {
@@ -1247,6 +1253,10 @@ void RenderWidgetHostImpl::ForwardKeyboardEvent(
latency_info);
key_event_with_latency.event.isBrowserShortcut = is_shortcut;
DispatchInputEventWithLatencyInfo(key_event, &key_event_with_latency.latency);
+ if (commands && !commands->empty()) {
+ Send(
+ new InputMsg_SetEditCommandsForNextKeyEvent(GetRoutingID(), *commands));
+ }
input_router_->SendKeyboardEvent(key_event_with_latency);
sadrul 2017/01/20 18:20:15 InputRouter can do additional queueing/filtering.
foolip 2017/01/20 20:01:40 At which point in InputRouterImpl will it be undou
sadrul 2017/01/20 21:57:22 InputRouterImpl::OfferToRendere [1] I believe is w
foolip 2017/01/20 22:33:12 I can believe that, even passing it alongside the
}
« no previous file with comments | « content/browser/renderer_host/render_widget_host_impl.h ('k') | content/browser/renderer_host/render_widget_host_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698