webkitRequestPointerLock and webkitExitPointerLock limited to the same document of an active Pointer lock.
https://bugs.webkit.org/show_bug.cgi?id=91284

Reviewed by Adrienne Walker.

Previously, cross-talk between documents was possible, e.g. allowing one
document.webkitExitPointerLock to exit the lock from another document.
This change brings Pointer Lock closer to the Fullscreen API behavior,
and stops the pointer lock target from being transferable between
documents.

Source/WebCore:

Test: http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html

* dom/Document.cpp:
(WebCore::Document::webkitExitPointerLock):
* page/PointerLockController.cpp:
(WebCore::PointerLockController::requestPointerLock):

LayoutTests:

* http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt: Added.
* http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html: Added.
* http/tests/resources/pointer-lock/iframe-common.js:
(document.onwebkitpointerlockchange):
(document.onwebkitpointerlockerror):
* pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt:
* pointer-lock/pointerlockchange-pointerlockerror-events.html:


git-svn-id: svn://svn.chromium.org/blink/trunk@124301 bbb929c8-8fbe-4397-9dbb-9b2b20218538
diff --git a/third_party/WebKit/LayoutTests/pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt b/third_party/WebKit/LayoutTests/pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt
index c5b13e0..f75145ef 100644
--- a/third_party/WebKit/LayoutTests/pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt
+++ b/third_party/WebKit/LayoutTests/pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt
@@ -14,19 +14,19 @@
 PASS onwebkitpointerlockchange received after: Lock targetDiv2.
      Lock targetDiv2 again.
 PASS onwebkitpointerlockchange received after: Lock targetDiv2 again.
+     Unlock targetDiv2.
+PASS onwebkitpointerlockchange received after: Unlock targetDiv2.
      Lock targetIframe1.
      Lock targetIframe1 (handler for iframe1).
 PASS onwebkitpointerlockchange received after: Lock targetIframe1 (handler for iframe1).
-PASS onwebkitpointerlockchange received after: Lock targetIframe1.
      Lock targetIframe2.
      Lock targetIframe2 (handler for iframe1).
      Lock targetIframe2 (handler for iframe2).
-PASS onwebkitpointerlockchange received after: Lock targetIframe2 (handler for iframe2).
-PASS onwebkitpointerlockchange received after: Lock targetIframe2 (handler for iframe1).
+PASS onwebkitpointerlockerror received after: Lock targetIframe2 (handler for iframe2).
      Unlock targetIframe2.
      Unlock targetIframe2 (handler for iframe1).
      Unlock targetIframe2 (handler for iframe2).
-PASS onwebkitpointerlockchange received after: Unlock targetIframe2 (handler for iframe2).
+PASS onwebkitpointerlockchange received after: Unlock targetIframe2 (handler for iframe1).
 PASS testRunner.setPointerLockWillFailSynchronously is defined.
      Lock with synchronous failure.
 PASS onwebkitpointerlockerror received after: Lock with synchronous failure.