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

Side by Side Diff: content/renderer/input/input_handler_manager.h

Issue 1877073003: Respect the order of input messages from browser to renderer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add DCHECKs for thread Created 4 years, 6 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #ifndef CONTENT_RENDERER_INPUT_INPUT_HANDLER_MANAGER_H_ 5 #ifndef CONTENT_RENDERER_INPUT_INPUT_HANDLER_MANAGER_H_
6 #define CONTENT_RENDERER_INPUT_INPUT_HANDLER_MANAGER_H_ 6 #define CONTENT_RENDERER_INPUT_INPUT_HANDLER_MANAGER_H_
7 7
8 #include "base/containers/scoped_ptr_hash_map.h" 8 #include "base/containers/scoped_ptr_hash_map.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/memory/weak_ptr.h" 10 #include "base/memory/weak_ptr.h"
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
51 SynchronousInputHandlerProxyClient* sync_handler_client, 51 SynchronousInputHandlerProxyClient* sync_handler_client,
52 scheduler::RendererScheduler* renderer_scheduler); 52 scheduler::RendererScheduler* renderer_scheduler);
53 virtual ~InputHandlerManager(); 53 virtual ~InputHandlerManager();
54 54
55 // Callable from the main thread only. 55 // Callable from the main thread only.
56 void AddInputHandler(int routing_id, 56 void AddInputHandler(int routing_id,
57 const base::WeakPtr<cc::InputHandler>& input_handler, 57 const base::WeakPtr<cc::InputHandler>& input_handler,
58 const base::WeakPtr<RenderViewImpl>& render_view_impl, 58 const base::WeakPtr<RenderViewImpl>& render_view_impl,
59 bool enable_smooth_scrolling); 59 bool enable_smooth_scrolling);
60 60
61 void RegisterRoutingID(int routing_id);
62 void UnregisterRoutingID(int routing_id);
63
61 void ObserveWheelEventAndResultOnMainThread( 64 void ObserveWheelEventAndResultOnMainThread(
62 int routing_id, 65 int routing_id,
63 const blink::WebMouseWheelEvent& wheel_event, 66 const blink::WebMouseWheelEvent& wheel_event,
64 const cc::InputHandlerScrollResult& scroll_result); 67 const cc::InputHandlerScrollResult& scroll_result);
65 68
66 void ObserveGestureEventAndResultOnMainThread( 69 void ObserveGestureEventAndResultOnMainThread(
67 int routing_id, 70 int routing_id,
68 const blink::WebGestureEvent& gesture_event, 71 const blink::WebGestureEvent& gesture_event,
69 const cc::InputHandlerScrollResult& scroll_result); 72 const cc::InputHandlerScrollResult& scroll_result);
70 73
(...skipping 21 matching lines...) Expand all
92 95
93 private: 96 private:
94 // Called from the compositor's thread. 97 // Called from the compositor's thread.
95 void AddInputHandlerOnCompositorThread( 98 void AddInputHandlerOnCompositorThread(
96 int routing_id, 99 int routing_id,
97 const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner, 100 const scoped_refptr<base::SingleThreadTaskRunner>& main_task_runner,
98 const base::WeakPtr<cc::InputHandler>& input_handler, 101 const base::WeakPtr<cc::InputHandler>& input_handler,
99 const base::WeakPtr<RenderViewImpl>& render_view_impl, 102 const base::WeakPtr<RenderViewImpl>& render_view_impl,
100 bool enable_smooth_scrolling); 103 bool enable_smooth_scrolling);
101 104
105 void RegisterRoutingIDOnCompositorThread(int routing_id);
106 void UnregisterRoutingIDOnCompositorThread(int routing_id);
107
102 void ObserveWheelEventAndResultOnCompositorThread( 108 void ObserveWheelEventAndResultOnCompositorThread(
103 int routing_id, 109 int routing_id,
104 const blink::WebMouseWheelEvent& wheel_event, 110 const blink::WebMouseWheelEvent& wheel_event,
105 const cc::InputHandlerScrollResult& scroll_result); 111 const cc::InputHandlerScrollResult& scroll_result);
106 112
107 void ObserveGestureEventAndResultOnCompositorThread( 113 void ObserveGestureEventAndResultOnCompositorThread(
108 int routing_id, 114 int routing_id,
109 const blink::WebGestureEvent& gesture_event, 115 const blink::WebGestureEvent& gesture_event,
110 const cc::InputHandlerScrollResult& scroll_result); 116 const cc::InputHandlerScrollResult& scroll_result);
111 117
112 void NotifyInputEventHandledOnCompositorThread(int routing_id, 118 void NotifyInputEventHandledOnCompositorThread(int routing_id,
113 blink::WebInputEvent::Type); 119 blink::WebInputEvent::Type);
114 120
115 typedef base::ScopedPtrHashMap<int, // routing_id 121 typedef base::ScopedPtrHashMap<int, // routing_id
116 std::unique_ptr<InputHandlerWrapper>> 122 std::unique_ptr<InputHandlerWrapper>>
117 InputHandlerMap; 123 InputHandlerMap;
118 InputHandlerMap input_handlers_; 124 InputHandlerMap input_handlers_;
119 125
120 const scoped_refptr<base::SingleThreadTaskRunner> task_runner_; 126 const scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
121 InputHandlerManagerClient* const client_; 127 InputHandlerManagerClient* const client_;
122 // May be null. 128 // May be null.
123 SynchronousInputHandlerProxyClient* const synchronous_handler_proxy_client_; 129 SynchronousInputHandlerProxyClient* const synchronous_handler_proxy_client_;
124 scheduler::RendererScheduler* const renderer_scheduler_; // Not owned. 130 scheduler::RendererScheduler* const renderer_scheduler_; // Not owned.
125 }; 131 };
126 132
127 } // namespace content 133 } // namespace content
128 134
129 #endif // CONTENT_RENDERER_INPUT_INPUT_HANDLER_MANAGER_H_ 135 #endif // CONTENT_RENDERER_INPUT_INPUT_HANDLER_MANAGER_H_
OLDNEW
« no previous file with comments | « content/renderer/input/input_event_filter_unittest.cc ('k') | content/renderer/input/input_handler_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698