Index: content/renderer/render_widget.h |
diff --git a/content/renderer/render_widget.h b/content/renderer/render_widget.h |
index b048936f0313d9f6ee0448b16ae319bbeb09d638..125fd7575a61422321247e35360e2812f4442ce3 100644 |
--- a/content/renderer/render_widget.h |
+++ b/content/renderer/render_widget.h |
@@ -27,6 +27,8 @@ |
#include "content/renderer/input/render_widget_input_handler.h" |
#include "content/renderer/input/render_widget_input_handler_delegate.h" |
#include "content/renderer/message_delivery_policy.h" |
+#include "content/renderer/mouse_lock_dispatcher.h" |
+#include "content/renderer/render_widget_mouse_lock_dispatcher.h" |
#include "ipc/ipc_listener.h" |
#include "ipc/ipc_sender.h" |
#include "third_party/WebKit/public/platform/WebDisplayMode.h" |
@@ -262,6 +264,9 @@ class CONTENT_EXPORT RenderWidget |
void showImeIfNeeded() override; |
void convertViewportToWindow(blink::WebRect* rect) override; |
void convertWindowToViewport(blink::WebFloatRect* rect) override; |
+ bool requestPointerLock() override; |
+ void requestPointerUnlock() override; |
+ bool isPointerLocked() override; |
// Override point to obtain that the current input method state and caret |
// position. |
@@ -366,6 +371,10 @@ class CONTENT_EXPORT RenderWidget |
// Indicates whether this widget has focus. |
bool has_focus() const { return has_focus_; } |
+ MouseLockDispatcher* mouse_lock_dispatcher() { |
+ return mouse_lock_dispatcher_.get(); |
+ } |
+ |
protected: |
// Friend RefCounted so that the dtor can be non-public. Using this class |
// without ref-counting is an error. |
@@ -401,7 +410,8 @@ class CONTENT_EXPORT RenderWidget |
// Called by Init and subclasses to perform initialization. |
bool DoInit(int32_t opener_id, |
blink::WebWidget* web_widget, |
- IPC::SyncMessage* create_widget_message); |
+ IPC::SyncMessage* create_widget_message, |
+ bool should_add_route); |
// Sets whether this RenderWidget has been swapped out to be displayed by |
// a RenderWidget in a different process. If so, no new IPC messages will be |
@@ -760,6 +770,12 @@ class CONTENT_EXPORT RenderWidget |
std::unique_ptr<scheduler::RenderWidgetSchedulingState> |
render_widget_scheduling_state_; |
+ // Mouse Lock dispatcher attached to this view. |
+ std::unique_ptr<RenderWidgetMouseLockDispatcher> mouse_lock_dispatcher_; |
+ |
+ // Wraps the |webwidget_| as a MouseLockDispatcher::LockTarget interface. |
+ std::unique_ptr<MouseLockDispatcher::LockTarget> webwidget_mouse_lock_target_; |
+ |
private: |
// When emulated, this returns original device scale factor. |
float GetOriginalDeviceScaleFactor() const; |