| Index: third_party/WebKit/Source/core/page/PointerLockController.cpp
|
| diff --git a/third_party/WebKit/Source/core/page/PointerLockController.cpp b/third_party/WebKit/Source/core/page/PointerLockController.cpp
|
| index c5b6dbc000daa59ffe0b585c38c5c97a1250881b..72ee211b26cb4822e86bb9dcc944cb7bd0592bc0 100644
|
| --- a/third_party/WebKit/Source/core/page/PointerLockController.cpp
|
| +++ b/third_party/WebKit/Source/core/page/PointerLockController.cpp
|
| @@ -68,7 +68,7 @@ void PointerLockController::requestPointerLock(Element* target)
|
| }
|
| enqueueEvent(EventTypeNames::pointerlockchange, target);
|
| m_element = target;
|
| - } else if (m_page->chromeClient().requestPointerLock()) {
|
| + } else if (m_page->chromeClient().requestPointerLock(target->document().frame())) {
|
| m_lockPending = true;
|
| m_element = target;
|
| } else {
|
| @@ -78,25 +78,25 @@ void PointerLockController::requestPointerLock(Element* target)
|
|
|
| void PointerLockController::requestPointerUnlock()
|
| {
|
| - return m_page->chromeClient().requestPointerUnlock();
|
| + return m_page->chromeClient().requestPointerUnlock(m_element->document().frame());
|
| }
|
|
|
| void PointerLockController::elementRemoved(Element* element)
|
| {
|
| if (m_element == element) {
|
| m_documentOfRemovedElementWhileWaitingForUnlock = &m_element->document();
|
| + requestPointerUnlock();
|
| // Set element null immediately to block any future interaction with it
|
| // including mouse events received before the unlock completes.
|
| clearElement();
|
| - requestPointerUnlock();
|
| }
|
| }
|
|
|
| void PointerLockController::documentDetached(Document* document)
|
| {
|
| if (m_element && m_element->document() == document) {
|
| - clearElement();
|
| requestPointerUnlock();
|
| + clearElement();
|
| }
|
| }
|
|
|
|
|