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

Unified Diff: content/renderer/gpu/input_handler_manager.cc

Issue 23364004: Implementation of device metrics emulation in render view. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Style Created 7 years, 3 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/renderer/gpu/input_handler_manager.cc
===================================================================
--- content/renderer/gpu/input_handler_manager.cc (revision 221161)
+++ content/renderer/gpu/input_handler_manager.cc (working copy)
@@ -93,6 +93,25 @@
routing_id, main_loop, input_handler, render_view_impl));
}
+void InputHandlerManager::SetInputEventRewriter(
+ int routing_id,
+ scoped_ptr<InputEventRewriter> rewriter) {
+ message_loop_proxy_->PostTask(
+ FROM_HERE,
+ base::Bind(&InputHandlerManager::SetInputEventRewriterOnCompositorThread,
+ base::Unretained(this),
+ routing_id,
+ base::Passed(&rewriter)));
+}
+
+void InputHandlerManager::SetInputEventRewriterOnCompositorThread(
+ int routing_id,
+ scoped_ptr<InputEventRewriter> rewriter) {
+ InputHandlerMap::iterator it = input_handlers_.find(routing_id);
+ if (it != input_handlers_.end())
+ it->second->SetRewriter(rewriter.Pass());
+}
+
void InputHandlerManager::RemoveInputHandler(int routing_id) {
DCHECK(message_loop_proxy_->BelongsToCurrentThread());
@@ -116,6 +135,16 @@
return INPUT_EVENT_ACK_STATE_NOT_CONSUMED;
}
+ scoped_ptr<WebInputEvent> rewritten_event_owner;
+ InputEventRewriter* rewriter = it->second->rewriter();
+ if (rewriter) {
+ WebInputEvent* rewritten = rewriter->RewriteInputEvent(input_event);
+ if (rewritten) {
+ rewritten_event_owner.reset(rewritten);
+ input_event = rewritten;
+ }
+ }
+
InputHandlerProxy* proxy = it->second->input_handler_proxy();
return InputEventDispositionToAck(
proxy->HandleInputEventWithLatencyInfo(*input_event, latency_info));

Powered by Google App Engine
This is Rietveld 408576698