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

Unified Diff: chrome/browser/renderer_host/render_widget_host.cc

Issue 40065: RenderWidgetHost now stores both the WebKeyboardEvent and the native (Closed)
Patch Set: Redesign Created 11 years, 10 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: chrome/browser/renderer_host/render_widget_host.cc
diff --git a/chrome/browser/renderer_host/render_widget_host.cc b/chrome/browser/renderer_host/render_widget_host.cc
index 6951e3d9e1aec72acd11226d1715e12854294e09..6d81971f3f28631a48974b278a5a7c4deb7207e0 100644
--- a/chrome/browser/renderer_host/render_widget_host.cc
+++ b/chrome/browser/renderer_host/render_widget_host.cc
@@ -291,13 +291,23 @@ void RenderWidgetHost::ForwardWheelEvent(
ForwardInputEvent(wheel_event, sizeof(WebMouseWheelEvent));
}
-void RenderWidgetHost::ForwardKeyboardEvent(const WebKeyboardEvent& key_event) {
+void RenderWidgetHost::ForwardKeyboardEvent(
+ const NativeWebKeyboardEvent& key_event) {
if (key_event.type == WebKeyboardEvent::CHAR &&
(key_event.windows_key_code == base::VKEY_RETURN ||
key_event.windows_key_code == base::VKEY_SPACE)) {
OnEnterOrSpace();
}
+ if (WebInputEvent::IsKeyboardEventType(key_event.type)) {
darin (slow to review) 2009/03/06 04:45:35 previously, we would have only added to the queue
Elliot Glaysher 2009/03/06 20:51:25 Done.
+ // Put all WebKeyboardEvent objects in a queue since we can't trust the
+ // renderer and we need to give something to the UnhandledInputEvent
+ // handler.
+ key_queue_.push(key_event);
+ HISTOGRAM_COUNTS_100("Renderer.KeyboardQueueSize", key_queue_.size());
+ }
+
+ // Only forward the non-native portions of our event.
ForwardInputEvent(key_event, sizeof(WebKeyboardEvent));
}
@@ -306,14 +316,6 @@ void RenderWidgetHost::ForwardInputEvent(const WebInputEvent& input_event,
if (!process_->channel())
return;
- if (WebInputEvent::IsKeyboardEventType(input_event.type)) {
- // Put all WebKeyboardEvent objects in a queue since we can't trust the
- // renderer and we need to give something to the UnhandledInputEvent
- // handler.
- key_queue_.push(static_cast<const WebKeyboardEvent&>(input_event));
- HISTOGRAM_COUNTS_100("Renderer.KeyboardQueueSize", key_queue_.size());
- }
-
IPC::Message* message = new ViewMsg_HandleInputEvent(routing_id_);
message->WriteData(
reinterpret_cast<const char*>(&input_event), event_size);
@@ -569,7 +571,8 @@ void RenderWidgetHost::OnMsgInputEventAck(const IPC::Message& message) {
<< "don't seem to have sent it to the renderer!";
} else if (key_queue_.front().type != type) {
LOG(ERROR) << "We seem to have a different key type sent from "
- << "the renderer. Ignoring event.";
+ << "the renderer. (" << key_queue_.front().type << " vs. "
+ << type << "). Ignoring event.";
} else {
bool processed = false;
r = message.ReadBool(&iter, &processed);

Powered by Google App Engine
This is Rietveld 408576698