Pointer Lock handles disconnected DOM elements
https://bugs.webkit.org/show_bug.cgi?id=77029
Reviewed by Adrienne Walker.
Source/WebCore:
Pointer Lock Controller now checks when elements or documents are
removed, and unlocks if the target element is being removed.
Tests: pointer-lock/locked-element-iframe-removed-from-dom.html
pointer-lock/locked-element-removed-from-dom.html
* dom/Document.cpp:
(WebCore::Document::detach):
* dom/Element.cpp:
(WebCore::Element::removedFrom):
(WebCore::Element::webkitRequestPointerLock):
* page/PointerLockController.cpp:
(WebCore::PointerLockController::requestPointerLock):
(WebCore::PointerLockController::elementRemoved):
(WebCore):
(WebCore::PointerLockController::documentDetached):
(WebCore::PointerLockController::didLosePointerLock):
(WebCore::PointerLockController::enqueueEvent):
* page/PointerLockController.h:
(WebCore):
(PointerLockController):
LayoutTests:
Two new tests that verify pointer lock is released when the target
is removed from the document.
* pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: Added.
* pointer-lock/locked-element-iframe-removed-from-dom.html: Added.
* pointer-lock/locked-element-removed-from-dom-expected.txt: Added.
* pointer-lock/locked-element-removed-from-dom.html: Added.
git-svn-id: svn://svn.chromium.org/blink/trunk@122626 bbb929c8-8fbe-4397-9dbb-9b2b20218538
10 files changed