haikuwebkit/LayoutTests/pointer-lock/lock-already-locked.html

65 lines
2.2 KiB
HTML
Raw Permalink Normal View History

Pointer Lock: Implement pointer interface https://bugs.webkit.org/show_bug.cgi?id=75762 Source/WebCore: Reviewed by Julien Chaffraix. Implement the navigator.pointer interface via a new PointerLockController class, as per http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html. The implementation is being made in steps, the feature is still behind compile-time and run-time flags, 'webkit' prefixed, and not yet enabled in any browser. (Chromium has a developer flag required.) Follow-up work will include handling DOM elements being removed, making all callbacks asynchronous, iframe permissions (similar to Full Screen), etc. PointerLockController maintains state of which Element is the current lock target and the success and failure callbacks. ChromeClient has methods added to expose the required state change requests. Tests: pointer-lock/lock-already-locked.html pointer-lock/lock-fail-responses.html pointer-lock/mouse-event-delivery.html pointer-lock/pointerlocklost-event.html * WebCore.gypi: * dom/EventNames.h: * page/ChromeClient.h: (WebCore::ChromeClient::requestPointerLock): (WebCore::ChromeClient::requestPointerUnlock): (WebCore::ChromeClient::isPointerLocked): * page/Navigator.cpp: (WebCore::Navigator::webkitPointer): * page/Page.cpp: (WebCore::Page::Page): * page/Page.h: (WebCore::Page::pointerLockController): * page/PointerLock.cpp: (WebCore::PointerLock::PointerLock): (WebCore::PointerLock::create): (WebCore::PointerLock::lock): (WebCore::PointerLock::unlock): (WebCore::PointerLock::isLocked): * page/PointerLock.h: (WebCore::PointerLock::create): * page/PointerLockController.cpp: Added. (WebCore::PointerLockController::PointerLockController): (WebCore::PointerLockController::requestPointerLock): (WebCore::PointerLockController::requestPointerUnlock): (WebCore::PointerLockController::isLocked): (WebCore::PointerLockController::didAcquirePointerLock): (WebCore::PointerLockController::didNotAcquirePointerLock): (WebCore::PointerLockController::didLosePointerLock): (WebCore::PointerLockController::dispatchLockedMouseEvent): * page/PointerLockController.h: Copied from Source/WebCore/page/PointerLock.h. Source/WebKit/chromium: Add calls to the PointerLockController added in this patch to WebCore. * src/WebViewImpl.cpp: (WebKit::WebViewImpl::close): (WebKit::WebViewImpl::didAcquirePointerLock): (WebKit::WebViewImpl::didNotAcquirePointerLock): (WebKit::WebViewImpl::didLosePointerLock): (WebKit::WebViewImpl::pointerLockMouseEvent): LayoutTests: Reviewed by Julien Chaffraix. * pointer-lock/lock-already-locked-expected.txt: Added. * pointer-lock/lock-already-locked.html: Added. * pointer-lock/lock-fail-responses-expected.txt: Added. * pointer-lock/lock-fail-responses.html: Added. * pointer-lock/mouse-event-delivery-expected.txt: Added. * pointer-lock/mouse-event-delivery.html: Added. * pointer-lock/pointerlocklost-event-expected.txt: Added. * pointer-lock/pointerlocklost-event.html: Added. Canonical link: https://commits.webkit.org/94110@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@106134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-01-27 19:06:41 +00:00
<!DOCTYPE HTML>
<html>
<head>
<script src="../http/tests/resources/js-test-pre.js"></script>
<script src="../http/tests/resources/pointer-lock/pointer-lock-test-harness.js"></script>
Pointer Lock: Implement pointer interface https://bugs.webkit.org/show_bug.cgi?id=75762 Source/WebCore: Reviewed by Julien Chaffraix. Implement the navigator.pointer interface via a new PointerLockController class, as per http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html. The implementation is being made in steps, the feature is still behind compile-time and run-time flags, 'webkit' prefixed, and not yet enabled in any browser. (Chromium has a developer flag required.) Follow-up work will include handling DOM elements being removed, making all callbacks asynchronous, iframe permissions (similar to Full Screen), etc. PointerLockController maintains state of which Element is the current lock target and the success and failure callbacks. ChromeClient has methods added to expose the required state change requests. Tests: pointer-lock/lock-already-locked.html pointer-lock/lock-fail-responses.html pointer-lock/mouse-event-delivery.html pointer-lock/pointerlocklost-event.html * WebCore.gypi: * dom/EventNames.h: * page/ChromeClient.h: (WebCore::ChromeClient::requestPointerLock): (WebCore::ChromeClient::requestPointerUnlock): (WebCore::ChromeClient::isPointerLocked): * page/Navigator.cpp: (WebCore::Navigator::webkitPointer): * page/Page.cpp: (WebCore::Page::Page): * page/Page.h: (WebCore::Page::pointerLockController): * page/PointerLock.cpp: (WebCore::PointerLock::PointerLock): (WebCore::PointerLock::create): (WebCore::PointerLock::lock): (WebCore::PointerLock::unlock): (WebCore::PointerLock::isLocked): * page/PointerLock.h: (WebCore::PointerLock::create): * page/PointerLockController.cpp: Added. (WebCore::PointerLockController::PointerLockController): (WebCore::PointerLockController::requestPointerLock): (WebCore::PointerLockController::requestPointerUnlock): (WebCore::PointerLockController::isLocked): (WebCore::PointerLockController::didAcquirePointerLock): (WebCore::PointerLockController::didNotAcquirePointerLock): (WebCore::PointerLockController::didLosePointerLock): (WebCore::PointerLockController::dispatchLockedMouseEvent): * page/PointerLockController.h: Copied from Source/WebCore/page/PointerLock.h. Source/WebKit/chromium: Add calls to the PointerLockController added in this patch to WebCore. * src/WebViewImpl.cpp: (WebKit::WebViewImpl::close): (WebKit::WebViewImpl::didAcquirePointerLock): (WebKit::WebViewImpl::didNotAcquirePointerLock): (WebKit::WebViewImpl::didLosePointerLock): (WebKit::WebViewImpl::pointerLockMouseEvent): LayoutTests: Reviewed by Julien Chaffraix. * pointer-lock/lock-already-locked-expected.txt: Added. * pointer-lock/lock-already-locked.html: Added. * pointer-lock/lock-fail-responses-expected.txt: Added. * pointer-lock/lock-fail-responses.html: Added. * pointer-lock/mouse-event-delivery-expected.txt: Added. * pointer-lock/mouse-event-delivery.html: Added. * pointer-lock/pointerlocklost-event-expected.txt: Added. * pointer-lock/pointerlocklost-event.html: Added. Canonical link: https://commits.webkit.org/94110@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@106134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-01-27 19:06:41 +00:00
</head>
<body>
<div>
<div id="target1"></div>
<div id="target2"></div>
</div>
<script>
description("Test calling lock when already in a locked state.")
window.jsTestIsAsync = true;
targetdiv1 = document.getElementById("target1");
targetdiv2 = document.getElementById("target2");
Add new Pointer Lock spec events webkitpointerlockchange and webkitpointerlockerror https://bugs.webkit.org/show_bug.cgi?id=88377 Reviewed by Dimitri Glazkov. Part of a series of refactoring changes to update pointer lock API to the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 New change and error events added. Follow up patches will remove the previous callbacks and pointerlocklost event. Tests updated to include the new events, and a new test added specifically for the new events, pointerlockchange-pointerlockerror-events.html. Source/WebCore: Test: pointer-lock/pointerlockchange-pointerlockerror-events.html * dom/Document.h: (Document): * dom/Document.idl: * dom/EventNames.h: (WebCore): * page/PointerLockController.cpp: (WebCore::PointerLockController::requestPointerLock): (WebCore::PointerLockController::didAcquirePointerLock): (WebCore::PointerLockController::didNotAcquirePointerLock): (WebCore::PointerLockController::didLosePointerLock): (WebCore::PointerLockController::enqueueEvent): (WebCore): * page/PointerLockController.h: (PointerLockController): LayoutTests: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: Added. * pointer-lock/pointerlockchange-pointerlockerror-events.html: Added. * pointer-lock/pointerlocklost-event-expected.txt: * pointer-lock/pointerlocklost-event.html: Canonical link: https://commits.webkit.org/106402@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@119763 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-06-07 22:40:19 +00:00
// Expect change event only for all transitions below.
Add new Pointer Lock spec attribute webkitPointerLockElement. https://bugs.webkit.org/show_bug.cgi?id=88799 Source/WebCore: Reviewed by Dimitri Glazkov. Part of a series of refactoring changes to update pointer lock API to the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 New attribute webkitPointerLockElement added. Follow up patches will remove the previous isLocked attribute. Tests updated to use the new attribute. * bindings/generic/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::webkitPointerLockElementEnabled): * dom/Document.cpp: (WebCore): (WebCore::Document::webkitPointerLockElement): * dom/Document.h: (Document): * dom/Document.idl: * page/PointerLockController.h: (WebCore::PointerLockController::element): Tools: Reviewed by Dimitri Glazkov. Part of a series of refactoring changes to update pointer lock API to the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 New attribute webkitPointerLockElement added. Follow up patches will remove the previous isLocked attribute. Tests updated to use the new attribute. WebViewHost logic required modification to correctly repond to a lock, unlock, pointerLockElement call series. Specifically, unlocking must be queued after a lock command is issued always as the lock state may not be set yet with a lock request in flight. * DumpRenderTree/chromium/WebViewHost.cpp: (WebViewHost::requestPointerUnlock): Always post didLosePointerLock task. (WebViewHost::didLosePointerLock): Signal didLosePointerLock only if pointer was locked. LayoutTests: Part of a series of refactoring changes to update pointer lock API to the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 New attribute webkitPointerLockElement added. Follow up patches will remove the previous isLocked attribute. Tests updated to use the new attribute. Reviewed by Dimitri Glazkov. * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlocklost-event-expected.txt: * pointer-lock/pointerlocklost-event.html: Canonical link: https://commits.webkit.org/106664@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@120031 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-06-12 03:02:16 +00:00
expectedTargetToBeLockedString = "";
Remove webkit prefix from pointer lock tests. https://bugs.webkit.org/show_bug.cgi?id=134744 Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08 Reviewed by Brady Eidson. * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed.html: * http/tests/pointer-lock/pointerlockelement-different-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-different-origin.html: * http/tests/pointer-lock/pointerlockelement-same-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-same-origin.html: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html: * http/tests/resources/pointer-lock/iframe-common.js: (document.onpointerlockchange): (document.onpointerlockerror): (document.onwebkitpointerlockchange): Deleted. (document.onwebkitpointerlockerror): Deleted. * http/tests/resources/pointer-lock/pointer-lock-test-harness.js: (expectOnlyChangeEvent): (expectOnlyErrorEvent): (expectNoEvents): * pointer-lock/bug90391-move-then-window-open-crash-expected.txt: * pointer-lock/bug90391-move-then-window-open-crash.html: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/lock-element-not-in-dom-expected.txt: * pointer-lock/lock-element-not-in-dom.html: * pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: * pointer-lock/locked-element-iframe-removed-from-dom.html: * pointer-lock/locked-element-removed-from-dom-expected.txt: * pointer-lock/locked-element-removed-from-dom.html: * pointer-lock/mouse-event-api-expected.txt: * pointer-lock/mouse-event-api.html: * pointer-lock/mouse-event-delivery-expected.txt: * pointer-lock/mouse-event-delivery.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt: * pointer-lock/pointerlockchange-event-on-lock-lost.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlockelement-null-when-pending-expected.txt: * pointer-lock/pointerlockelement-null-when-pending.html: Remove webkit prefix on pointer lock functions and events. This should have been done in r170585. Canonical link: https://commits.webkit.org/152687@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-07-08 22:36:24 +00:00
document.onpointerlockchange = function ()
Add new Pointer Lock spec attribute webkitPointerLockElement. https://bugs.webkit.org/show_bug.cgi?id=88799 Source/WebCore: Reviewed by Dimitri Glazkov. Part of a series of refactoring changes to update pointer lock API to the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 New attribute webkitPointerLockElement added. Follow up patches will remove the previous isLocked attribute. Tests updated to use the new attribute. * bindings/generic/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::webkitPointerLockElementEnabled): * dom/Document.cpp: (WebCore): (WebCore::Document::webkitPointerLockElement): * dom/Document.h: (Document): * dom/Document.idl: * page/PointerLockController.h: (WebCore::PointerLockController::element): Tools: Reviewed by Dimitri Glazkov. Part of a series of refactoring changes to update pointer lock API to the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 New attribute webkitPointerLockElement added. Follow up patches will remove the previous isLocked attribute. Tests updated to use the new attribute. WebViewHost logic required modification to correctly repond to a lock, unlock, pointerLockElement call series. Specifically, unlocking must be queued after a lock command is issued always as the lock state may not be set yet with a lock request in flight. * DumpRenderTree/chromium/WebViewHost.cpp: (WebViewHost::requestPointerUnlock): Always post didLosePointerLock task. (WebViewHost::didLosePointerLock): Signal didLosePointerLock only if pointer was locked. LayoutTests: Part of a series of refactoring changes to update pointer lock API to the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 New attribute webkitPointerLockElement added. Follow up patches will remove the previous isLocked attribute. Tests updated to use the new attribute. Reviewed by Dimitri Glazkov. * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlocklost-event-expected.txt: * pointer-lock/pointerlocklost-event.html: Canonical link: https://commits.webkit.org/106664@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@120031 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-06-12 03:02:16 +00:00
{
Remove webkit prefix from pointer lock tests. https://bugs.webkit.org/show_bug.cgi?id=134744 Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08 Reviewed by Brady Eidson. * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed.html: * http/tests/pointer-lock/pointerlockelement-different-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-different-origin.html: * http/tests/pointer-lock/pointerlockelement-same-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-same-origin.html: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html: * http/tests/resources/pointer-lock/iframe-common.js: (document.onpointerlockchange): (document.onpointerlockerror): (document.onwebkitpointerlockchange): Deleted. (document.onwebkitpointerlockerror): Deleted. * http/tests/resources/pointer-lock/pointer-lock-test-harness.js: (expectOnlyChangeEvent): (expectOnlyErrorEvent): (expectNoEvents): * pointer-lock/bug90391-move-then-window-open-crash-expected.txt: * pointer-lock/bug90391-move-then-window-open-crash.html: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/lock-element-not-in-dom-expected.txt: * pointer-lock/lock-element-not-in-dom.html: * pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: * pointer-lock/locked-element-iframe-removed-from-dom.html: * pointer-lock/locked-element-removed-from-dom-expected.txt: * pointer-lock/locked-element-removed-from-dom.html: * pointer-lock/mouse-event-api-expected.txt: * pointer-lock/mouse-event-api.html: * pointer-lock/mouse-event-delivery-expected.txt: * pointer-lock/mouse-event-delivery.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt: * pointer-lock/pointerlockchange-event-on-lock-lost.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlockelement-null-when-pending-expected.txt: * pointer-lock/pointerlockelement-null-when-pending.html: Remove webkit prefix on pointer lock functions and events. This should have been done in r170585. Canonical link: https://commits.webkit.org/152687@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-07-08 22:36:24 +00:00
testPassed("document.onpointerlockchange event received.");
shouldBe("document.pointerLockElement", expectedTargetToBeLockedString);
doNextStepWithUserGesture();
Add new Pointer Lock spec attribute webkitPointerLockElement. https://bugs.webkit.org/show_bug.cgi?id=88799 Source/WebCore: Reviewed by Dimitri Glazkov. Part of a series of refactoring changes to update pointer lock API to the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 New attribute webkitPointerLockElement added. Follow up patches will remove the previous isLocked attribute. Tests updated to use the new attribute. * bindings/generic/RuntimeEnabledFeatures.h: (WebCore::RuntimeEnabledFeatures::webkitPointerLockElementEnabled): * dom/Document.cpp: (WebCore): (WebCore::Document::webkitPointerLockElement): * dom/Document.h: (Document): * dom/Document.idl: * page/PointerLockController.h: (WebCore::PointerLockController::element): Tools: Reviewed by Dimitri Glazkov. Part of a series of refactoring changes to update pointer lock API to the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 New attribute webkitPointerLockElement added. Follow up patches will remove the previous isLocked attribute. Tests updated to use the new attribute. WebViewHost logic required modification to correctly repond to a lock, unlock, pointerLockElement call series. Specifically, unlocking must be queued after a lock command is issued always as the lock state may not be set yet with a lock request in flight. * DumpRenderTree/chromium/WebViewHost.cpp: (WebViewHost::requestPointerUnlock): Always post didLosePointerLock task. (WebViewHost::didLosePointerLock): Signal didLosePointerLock only if pointer was locked. LayoutTests: Part of a series of refactoring changes to update pointer lock API to the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 New attribute webkitPointerLockElement added. Follow up patches will remove the previous isLocked attribute. Tests updated to use the new attribute. Reviewed by Dimitri Glazkov. * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlocklost-event-expected.txt: * pointer-lock/pointerlocklost-event.html: Canonical link: https://commits.webkit.org/106664@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@120031 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-06-12 03:02:16 +00:00
};
Remove webkit prefix from pointer lock tests. https://bugs.webkit.org/show_bug.cgi?id=134744 Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08 Reviewed by Brady Eidson. * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed.html: * http/tests/pointer-lock/pointerlockelement-different-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-different-origin.html: * http/tests/pointer-lock/pointerlockelement-same-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-same-origin.html: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html: * http/tests/resources/pointer-lock/iframe-common.js: (document.onpointerlockchange): (document.onpointerlockerror): (document.onwebkitpointerlockchange): Deleted. (document.onwebkitpointerlockerror): Deleted. * http/tests/resources/pointer-lock/pointer-lock-test-harness.js: (expectOnlyChangeEvent): (expectOnlyErrorEvent): (expectNoEvents): * pointer-lock/bug90391-move-then-window-open-crash-expected.txt: * pointer-lock/bug90391-move-then-window-open-crash.html: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/lock-element-not-in-dom-expected.txt: * pointer-lock/lock-element-not-in-dom.html: * pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: * pointer-lock/locked-element-iframe-removed-from-dom.html: * pointer-lock/locked-element-removed-from-dom-expected.txt: * pointer-lock/locked-element-removed-from-dom.html: * pointer-lock/mouse-event-api-expected.txt: * pointer-lock/mouse-event-api.html: * pointer-lock/mouse-event-delivery-expected.txt: * pointer-lock/mouse-event-delivery.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt: * pointer-lock/pointerlockchange-event-on-lock-lost.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlockelement-null-when-pending-expected.txt: * pointer-lock/pointerlockelement-null-when-pending.html: Remove webkit prefix on pointer lock functions and events. This should have been done in r170585. Canonical link: https://commits.webkit.org/152687@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-07-08 22:36:24 +00:00
document.onpointerlockerror =
function () { testFailed("document.onpointerlockerror event received."); finishJSTest(); };
Add new Pointer Lock spec events webkitpointerlockchange and webkitpointerlockerror https://bugs.webkit.org/show_bug.cgi?id=88377 Reviewed by Dimitri Glazkov. Part of a series of refactoring changes to update pointer lock API to the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 New change and error events added. Follow up patches will remove the previous callbacks and pointerlocklost event. Tests updated to include the new events, and a new test added specifically for the new events, pointerlockchange-pointerlockerror-events.html. Source/WebCore: Test: pointer-lock/pointerlockchange-pointerlockerror-events.html * dom/Document.h: (Document): * dom/Document.idl: * dom/EventNames.h: (WebCore): * page/PointerLockController.cpp: (WebCore::PointerLockController::requestPointerLock): (WebCore::PointerLockController::didAcquirePointerLock): (WebCore::PointerLockController::didNotAcquirePointerLock): (WebCore::PointerLockController::didLosePointerLock): (WebCore::PointerLockController::enqueueEvent): (WebCore): * page/PointerLockController.h: (PointerLockController): LayoutTests: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: Added. * pointer-lock/pointerlockchange-pointerlockerror-events.html: Added. * pointer-lock/pointerlocklost-event-expected.txt: * pointer-lock/pointerlocklost-event.html: Canonical link: https://commits.webkit.org/106402@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@119763 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-06-07 22:40:19 +00:00
Pointer Lock: Implement pointer interface https://bugs.webkit.org/show_bug.cgi?id=75762 Source/WebCore: Reviewed by Julien Chaffraix. Implement the navigator.pointer interface via a new PointerLockController class, as per http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html. The implementation is being made in steps, the feature is still behind compile-time and run-time flags, 'webkit' prefixed, and not yet enabled in any browser. (Chromium has a developer flag required.) Follow-up work will include handling DOM elements being removed, making all callbacks asynchronous, iframe permissions (similar to Full Screen), etc. PointerLockController maintains state of which Element is the current lock target and the success and failure callbacks. ChromeClient has methods added to expose the required state change requests. Tests: pointer-lock/lock-already-locked.html pointer-lock/lock-fail-responses.html pointer-lock/mouse-event-delivery.html pointer-lock/pointerlocklost-event.html * WebCore.gypi: * dom/EventNames.h: * page/ChromeClient.h: (WebCore::ChromeClient::requestPointerLock): (WebCore::ChromeClient::requestPointerUnlock): (WebCore::ChromeClient::isPointerLocked): * page/Navigator.cpp: (WebCore::Navigator::webkitPointer): * page/Page.cpp: (WebCore::Page::Page): * page/Page.h: (WebCore::Page::pointerLockController): * page/PointerLock.cpp: (WebCore::PointerLock::PointerLock): (WebCore::PointerLock::create): (WebCore::PointerLock::lock): (WebCore::PointerLock::unlock): (WebCore::PointerLock::isLocked): * page/PointerLock.h: (WebCore::PointerLock::create): * page/PointerLockController.cpp: Added. (WebCore::PointerLockController::PointerLockController): (WebCore::PointerLockController::requestPointerLock): (WebCore::PointerLockController::requestPointerUnlock): (WebCore::PointerLockController::isLocked): (WebCore::PointerLockController::didAcquirePointerLock): (WebCore::PointerLockController::didNotAcquirePointerLock): (WebCore::PointerLockController::didLosePointerLock): (WebCore::PointerLockController::dispatchLockedMouseEvent): * page/PointerLockController.h: Copied from Source/WebCore/page/PointerLock.h. Source/WebKit/chromium: Add calls to the PointerLockController added in this patch to WebCore. * src/WebViewImpl.cpp: (WebKit::WebViewImpl::close): (WebKit::WebViewImpl::didAcquirePointerLock): (WebKit::WebViewImpl::didNotAcquirePointerLock): (WebKit::WebViewImpl::didLosePointerLock): (WebKit::WebViewImpl::pointerLockMouseEvent): LayoutTests: Reviewed by Julien Chaffraix. * pointer-lock/lock-already-locked-expected.txt: Added. * pointer-lock/lock-already-locked.html: Added. * pointer-lock/lock-fail-responses-expected.txt: Added. * pointer-lock/lock-fail-responses.html: Added. * pointer-lock/mouse-event-delivery-expected.txt: Added. * pointer-lock/mouse-event-delivery.html: Added. * pointer-lock/pointerlocklost-event-expected.txt: Added. * pointer-lock/pointerlocklost-event.html: Added. Canonical link: https://commits.webkit.org/94110@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@106134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-01-27 19:06:41 +00:00
var expectTarget1Unlock = false;
Remove webkit prefix from pointer lock tests. https://bugs.webkit.org/show_bug.cgi?id=134744 Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08 Reviewed by Brady Eidson. * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed.html: * http/tests/pointer-lock/pointerlockelement-different-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-different-origin.html: * http/tests/pointer-lock/pointerlockelement-same-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-same-origin.html: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html: * http/tests/resources/pointer-lock/iframe-common.js: (document.onpointerlockchange): (document.onpointerlockerror): (document.onwebkitpointerlockchange): Deleted. (document.onwebkitpointerlockerror): Deleted. * http/tests/resources/pointer-lock/pointer-lock-test-harness.js: (expectOnlyChangeEvent): (expectOnlyErrorEvent): (expectNoEvents): * pointer-lock/bug90391-move-then-window-open-crash-expected.txt: * pointer-lock/bug90391-move-then-window-open-crash.html: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/lock-element-not-in-dom-expected.txt: * pointer-lock/lock-element-not-in-dom.html: * pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: * pointer-lock/locked-element-iframe-removed-from-dom.html: * pointer-lock/locked-element-removed-from-dom-expected.txt: * pointer-lock/locked-element-removed-from-dom.html: * pointer-lock/mouse-event-api-expected.txt: * pointer-lock/mouse-event-api.html: * pointer-lock/mouse-event-delivery-expected.txt: * pointer-lock/mouse-event-delivery.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt: * pointer-lock/pointerlockchange-event-on-lock-lost.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlockelement-null-when-pending-expected.txt: * pointer-lock/pointerlockelement-null-when-pending.html: Remove webkit prefix on pointer lock functions and events. This should have been done in r170585. Canonical link: https://commits.webkit.org/152687@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-07-08 22:36:24 +00:00
targetdiv1.addEventListener("pointerlocklost",
Pointer Lock: Implement pointer interface https://bugs.webkit.org/show_bug.cgi?id=75762 Source/WebCore: Reviewed by Julien Chaffraix. Implement the navigator.pointer interface via a new PointerLockController class, as per http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html. The implementation is being made in steps, the feature is still behind compile-time and run-time flags, 'webkit' prefixed, and not yet enabled in any browser. (Chromium has a developer flag required.) Follow-up work will include handling DOM elements being removed, making all callbacks asynchronous, iframe permissions (similar to Full Screen), etc. PointerLockController maintains state of which Element is the current lock target and the success and failure callbacks. ChromeClient has methods added to expose the required state change requests. Tests: pointer-lock/lock-already-locked.html pointer-lock/lock-fail-responses.html pointer-lock/mouse-event-delivery.html pointer-lock/pointerlocklost-event.html * WebCore.gypi: * dom/EventNames.h: * page/ChromeClient.h: (WebCore::ChromeClient::requestPointerLock): (WebCore::ChromeClient::requestPointerUnlock): (WebCore::ChromeClient::isPointerLocked): * page/Navigator.cpp: (WebCore::Navigator::webkitPointer): * page/Page.cpp: (WebCore::Page::Page): * page/Page.h: (WebCore::Page::pointerLockController): * page/PointerLock.cpp: (WebCore::PointerLock::PointerLock): (WebCore::PointerLock::create): (WebCore::PointerLock::lock): (WebCore::PointerLock::unlock): (WebCore::PointerLock::isLocked): * page/PointerLock.h: (WebCore::PointerLock::create): * page/PointerLockController.cpp: Added. (WebCore::PointerLockController::PointerLockController): (WebCore::PointerLockController::requestPointerLock): (WebCore::PointerLockController::requestPointerUnlock): (WebCore::PointerLockController::isLocked): (WebCore::PointerLockController::didAcquirePointerLock): (WebCore::PointerLockController::didNotAcquirePointerLock): (WebCore::PointerLockController::didLosePointerLock): (WebCore::PointerLockController::dispatchLockedMouseEvent): * page/PointerLockController.h: Copied from Source/WebCore/page/PointerLock.h. Source/WebKit/chromium: Add calls to the PointerLockController added in this patch to WebCore. * src/WebViewImpl.cpp: (WebKit::WebViewImpl::close): (WebKit::WebViewImpl::didAcquirePointerLock): (WebKit::WebViewImpl::didNotAcquirePointerLock): (WebKit::WebViewImpl::didLosePointerLock): (WebKit::WebViewImpl::pointerLockMouseEvent): LayoutTests: Reviewed by Julien Chaffraix. * pointer-lock/lock-already-locked-expected.txt: Added. * pointer-lock/lock-already-locked.html: Added. * pointer-lock/lock-fail-responses-expected.txt: Added. * pointer-lock/lock-fail-responses.html: Added. * pointer-lock/mouse-event-delivery-expected.txt: Added. * pointer-lock/mouse-event-delivery.html: Added. * pointer-lock/pointerlocklost-event-expected.txt: Added. * pointer-lock/pointerlocklost-event.html: Added. Canonical link: https://commits.webkit.org/94110@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@106134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-01-27 19:06:41 +00:00
function () { shouldBe("expectTarget1Unlock", "true"); });
var expectTarget2Unlock = false;
Remove webkit prefix from pointer lock tests. https://bugs.webkit.org/show_bug.cgi?id=134744 Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08 Reviewed by Brady Eidson. * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed.html: * http/tests/pointer-lock/pointerlockelement-different-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-different-origin.html: * http/tests/pointer-lock/pointerlockelement-same-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-same-origin.html: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html: * http/tests/resources/pointer-lock/iframe-common.js: (document.onpointerlockchange): (document.onpointerlockerror): (document.onwebkitpointerlockchange): Deleted. (document.onwebkitpointerlockerror): Deleted. * http/tests/resources/pointer-lock/pointer-lock-test-harness.js: (expectOnlyChangeEvent): (expectOnlyErrorEvent): (expectNoEvents): * pointer-lock/bug90391-move-then-window-open-crash-expected.txt: * pointer-lock/bug90391-move-then-window-open-crash.html: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/lock-element-not-in-dom-expected.txt: * pointer-lock/lock-element-not-in-dom.html: * pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: * pointer-lock/locked-element-iframe-removed-from-dom.html: * pointer-lock/locked-element-removed-from-dom-expected.txt: * pointer-lock/locked-element-removed-from-dom.html: * pointer-lock/mouse-event-api-expected.txt: * pointer-lock/mouse-event-api.html: * pointer-lock/mouse-event-delivery-expected.txt: * pointer-lock/mouse-event-delivery.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt: * pointer-lock/pointerlockchange-event-on-lock-lost.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlockelement-null-when-pending-expected.txt: * pointer-lock/pointerlockelement-null-when-pending.html: Remove webkit prefix on pointer lock functions and events. This should have been done in r170585. Canonical link: https://commits.webkit.org/152687@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-07-08 22:36:24 +00:00
targetdiv2.addEventListener("pointerlocklost",
function () { shouldBe("expectTarget2Unlock", "true"); });
Pointer Lock: Implement pointer interface https://bugs.webkit.org/show_bug.cgi?id=75762 Source/WebCore: Reviewed by Julien Chaffraix. Implement the navigator.pointer interface via a new PointerLockController class, as per http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html. The implementation is being made in steps, the feature is still behind compile-time and run-time flags, 'webkit' prefixed, and not yet enabled in any browser. (Chromium has a developer flag required.) Follow-up work will include handling DOM elements being removed, making all callbacks asynchronous, iframe permissions (similar to Full Screen), etc. PointerLockController maintains state of which Element is the current lock target and the success and failure callbacks. ChromeClient has methods added to expose the required state change requests. Tests: pointer-lock/lock-already-locked.html pointer-lock/lock-fail-responses.html pointer-lock/mouse-event-delivery.html pointer-lock/pointerlocklost-event.html * WebCore.gypi: * dom/EventNames.h: * page/ChromeClient.h: (WebCore::ChromeClient::requestPointerLock): (WebCore::ChromeClient::requestPointerUnlock): (WebCore::ChromeClient::isPointerLocked): * page/Navigator.cpp: (WebCore::Navigator::webkitPointer): * page/Page.cpp: (WebCore::Page::Page): * page/Page.h: (WebCore::Page::pointerLockController): * page/PointerLock.cpp: (WebCore::PointerLock::PointerLock): (WebCore::PointerLock::create): (WebCore::PointerLock::lock): (WebCore::PointerLock::unlock): (WebCore::PointerLock::isLocked): * page/PointerLock.h: (WebCore::PointerLock::create): * page/PointerLockController.cpp: Added. (WebCore::PointerLockController::PointerLockController): (WebCore::PointerLockController::requestPointerLock): (WebCore::PointerLockController::requestPointerUnlock): (WebCore::PointerLockController::isLocked): (WebCore::PointerLockController::didAcquirePointerLock): (WebCore::PointerLockController::didNotAcquirePointerLock): (WebCore::PointerLockController::didLosePointerLock): (WebCore::PointerLockController::dispatchLockedMouseEvent): * page/PointerLockController.h: Copied from Source/WebCore/page/PointerLock.h. Source/WebKit/chromium: Add calls to the PointerLockController added in this patch to WebCore. * src/WebViewImpl.cpp: (WebKit::WebViewImpl::close): (WebKit::WebViewImpl::didAcquirePointerLock): (WebKit::WebViewImpl::didNotAcquirePointerLock): (WebKit::WebViewImpl::didLosePointerLock): (WebKit::WebViewImpl::pointerLockMouseEvent): LayoutTests: Reviewed by Julien Chaffraix. * pointer-lock/lock-already-locked-expected.txt: Added. * pointer-lock/lock-already-locked.html: Added. * pointer-lock/lock-fail-responses-expected.txt: Added. * pointer-lock/lock-fail-responses.html: Added. * pointer-lock/mouse-event-delivery-expected.txt: Added. * pointer-lock/mouse-event-delivery.html: Added. * pointer-lock/pointerlocklost-event-expected.txt: Added. * pointer-lock/pointerlocklost-event.html: Added. Canonical link: https://commits.webkit.org/94110@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@106134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-01-27 19:06:41 +00:00
todo = [
function () {
Remove webkit prefix from pointer lock tests. https://bugs.webkit.org/show_bug.cgi?id=134744 Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08 Reviewed by Brady Eidson. * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed.html: * http/tests/pointer-lock/pointerlockelement-different-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-different-origin.html: * http/tests/pointer-lock/pointerlockelement-same-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-same-origin.html: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html: * http/tests/resources/pointer-lock/iframe-common.js: (document.onpointerlockchange): (document.onpointerlockerror): (document.onwebkitpointerlockchange): Deleted. (document.onwebkitpointerlockerror): Deleted. * http/tests/resources/pointer-lock/pointer-lock-test-harness.js: (expectOnlyChangeEvent): (expectOnlyErrorEvent): (expectNoEvents): * pointer-lock/bug90391-move-then-window-open-crash-expected.txt: * pointer-lock/bug90391-move-then-window-open-crash.html: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/lock-element-not-in-dom-expected.txt: * pointer-lock/lock-element-not-in-dom.html: * pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: * pointer-lock/locked-element-iframe-removed-from-dom.html: * pointer-lock/locked-element-removed-from-dom-expected.txt: * pointer-lock/locked-element-removed-from-dom.html: * pointer-lock/mouse-event-api-expected.txt: * pointer-lock/mouse-event-api.html: * pointer-lock/mouse-event-delivery-expected.txt: * pointer-lock/mouse-event-delivery.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt: * pointer-lock/pointerlockchange-event-on-lock-lost.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlockelement-null-when-pending-expected.txt: * pointer-lock/pointerlockelement-null-when-pending.html: Remove webkit prefix on pointer lock functions and events. This should have been done in r170585. Canonical link: https://commits.webkit.org/152687@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-07-08 22:36:24 +00:00
shouldBe("document.pointerLockElement", "null");
debug(" Locking targetdiv1.")
Remove webkit prefix from pointer lock tests. https://bugs.webkit.org/show_bug.cgi?id=134744 Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08 Reviewed by Brady Eidson. * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed.html: * http/tests/pointer-lock/pointerlockelement-different-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-different-origin.html: * http/tests/pointer-lock/pointerlockelement-same-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-same-origin.html: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html: * http/tests/resources/pointer-lock/iframe-common.js: (document.onpointerlockchange): (document.onpointerlockerror): (document.onwebkitpointerlockchange): Deleted. (document.onwebkitpointerlockerror): Deleted. * http/tests/resources/pointer-lock/pointer-lock-test-harness.js: (expectOnlyChangeEvent): (expectOnlyErrorEvent): (expectNoEvents): * pointer-lock/bug90391-move-then-window-open-crash-expected.txt: * pointer-lock/bug90391-move-then-window-open-crash.html: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/lock-element-not-in-dom-expected.txt: * pointer-lock/lock-element-not-in-dom.html: * pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: * pointer-lock/locked-element-iframe-removed-from-dom.html: * pointer-lock/locked-element-removed-from-dom-expected.txt: * pointer-lock/locked-element-removed-from-dom.html: * pointer-lock/mouse-event-api-expected.txt: * pointer-lock/mouse-event-api.html: * pointer-lock/mouse-event-delivery-expected.txt: * pointer-lock/mouse-event-delivery.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt: * pointer-lock/pointerlockchange-event-on-lock-lost.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlockelement-null-when-pending-expected.txt: * pointer-lock/pointerlockelement-null-when-pending.html: Remove webkit prefix on pointer lock functions and events. This should have been done in r170585. Canonical link: https://commits.webkit.org/152687@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-07-08 22:36:24 +00:00
targetdiv1.requestPointerLock();
expectedTargetToBeLockedString = "targetdiv1";
Remove webkit prefix from pointer lock tests. https://bugs.webkit.org/show_bug.cgi?id=134744 Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08 Reviewed by Brady Eidson. * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed.html: * http/tests/pointer-lock/pointerlockelement-different-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-different-origin.html: * http/tests/pointer-lock/pointerlockelement-same-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-same-origin.html: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html: * http/tests/resources/pointer-lock/iframe-common.js: (document.onpointerlockchange): (document.onpointerlockerror): (document.onwebkitpointerlockchange): Deleted. (document.onwebkitpointerlockerror): Deleted. * http/tests/resources/pointer-lock/pointer-lock-test-harness.js: (expectOnlyChangeEvent): (expectOnlyErrorEvent): (expectNoEvents): * pointer-lock/bug90391-move-then-window-open-crash-expected.txt: * pointer-lock/bug90391-move-then-window-open-crash.html: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/lock-element-not-in-dom-expected.txt: * pointer-lock/lock-element-not-in-dom.html: * pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: * pointer-lock/locked-element-iframe-removed-from-dom.html: * pointer-lock/locked-element-removed-from-dom-expected.txt: * pointer-lock/locked-element-removed-from-dom.html: * pointer-lock/mouse-event-api-expected.txt: * pointer-lock/mouse-event-api.html: * pointer-lock/mouse-event-delivery-expected.txt: * pointer-lock/mouse-event-delivery.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt: * pointer-lock/pointerlockchange-event-on-lock-lost.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlockelement-null-when-pending-expected.txt: * pointer-lock/pointerlockelement-null-when-pending.html: Remove webkit prefix on pointer lock functions and events. This should have been done in r170585. Canonical link: https://commits.webkit.org/152687@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-07-08 22:36:24 +00:00
// doNextStep() called by onpointerlockchange handler.
},
function () {
debug(" Locking targetdiv1, again.")
Remove webkit prefix from pointer lock tests. https://bugs.webkit.org/show_bug.cgi?id=134744 Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08 Reviewed by Brady Eidson. * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed.html: * http/tests/pointer-lock/pointerlockelement-different-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-different-origin.html: * http/tests/pointer-lock/pointerlockelement-same-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-same-origin.html: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html: * http/tests/resources/pointer-lock/iframe-common.js: (document.onpointerlockchange): (document.onpointerlockerror): (document.onwebkitpointerlockchange): Deleted. (document.onwebkitpointerlockerror): Deleted. * http/tests/resources/pointer-lock/pointer-lock-test-harness.js: (expectOnlyChangeEvent): (expectOnlyErrorEvent): (expectNoEvents): * pointer-lock/bug90391-move-then-window-open-crash-expected.txt: * pointer-lock/bug90391-move-then-window-open-crash.html: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/lock-element-not-in-dom-expected.txt: * pointer-lock/lock-element-not-in-dom.html: * pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: * pointer-lock/locked-element-iframe-removed-from-dom.html: * pointer-lock/locked-element-removed-from-dom-expected.txt: * pointer-lock/locked-element-removed-from-dom.html: * pointer-lock/mouse-event-api-expected.txt: * pointer-lock/mouse-event-api.html: * pointer-lock/mouse-event-delivery-expected.txt: * pointer-lock/mouse-event-delivery.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt: * pointer-lock/pointerlockchange-event-on-lock-lost.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlockelement-null-when-pending-expected.txt: * pointer-lock/pointerlockelement-null-when-pending.html: Remove webkit prefix on pointer lock functions and events. This should have been done in r170585. Canonical link: https://commits.webkit.org/152687@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-07-08 22:36:24 +00:00
targetdiv1.requestPointerLock();
expectedTargetToBeLockedString = "targetdiv1";
Remove webkit prefix from pointer lock tests. https://bugs.webkit.org/show_bug.cgi?id=134744 Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08 Reviewed by Brady Eidson. * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed.html: * http/tests/pointer-lock/pointerlockelement-different-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-different-origin.html: * http/tests/pointer-lock/pointerlockelement-same-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-same-origin.html: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html: * http/tests/resources/pointer-lock/iframe-common.js: (document.onpointerlockchange): (document.onpointerlockerror): (document.onwebkitpointerlockchange): Deleted. (document.onwebkitpointerlockerror): Deleted. * http/tests/resources/pointer-lock/pointer-lock-test-harness.js: (expectOnlyChangeEvent): (expectOnlyErrorEvent): (expectNoEvents): * pointer-lock/bug90391-move-then-window-open-crash-expected.txt: * pointer-lock/bug90391-move-then-window-open-crash.html: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/lock-element-not-in-dom-expected.txt: * pointer-lock/lock-element-not-in-dom.html: * pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: * pointer-lock/locked-element-iframe-removed-from-dom.html: * pointer-lock/locked-element-removed-from-dom-expected.txt: * pointer-lock/locked-element-removed-from-dom.html: * pointer-lock/mouse-event-api-expected.txt: * pointer-lock/mouse-event-api.html: * pointer-lock/mouse-event-delivery-expected.txt: * pointer-lock/mouse-event-delivery.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt: * pointer-lock/pointerlockchange-event-on-lock-lost.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlockelement-null-when-pending-expected.txt: * pointer-lock/pointerlockelement-null-when-pending.html: Remove webkit prefix on pointer lock functions and events. This should have been done in r170585. Canonical link: https://commits.webkit.org/152687@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-07-08 22:36:24 +00:00
// doNextStep() called by onpointerlockchange handler.
},
function () {
debug(" Locking targetdiv2.")
expectTarget1Unlock = true;
Remove webkit prefix from pointer lock tests. https://bugs.webkit.org/show_bug.cgi?id=134744 Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08 Reviewed by Brady Eidson. * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed.html: * http/tests/pointer-lock/pointerlockelement-different-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-different-origin.html: * http/tests/pointer-lock/pointerlockelement-same-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-same-origin.html: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html: * http/tests/resources/pointer-lock/iframe-common.js: (document.onpointerlockchange): (document.onpointerlockerror): (document.onwebkitpointerlockchange): Deleted. (document.onwebkitpointerlockerror): Deleted. * http/tests/resources/pointer-lock/pointer-lock-test-harness.js: (expectOnlyChangeEvent): (expectOnlyErrorEvent): (expectNoEvents): * pointer-lock/bug90391-move-then-window-open-crash-expected.txt: * pointer-lock/bug90391-move-then-window-open-crash.html: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/lock-element-not-in-dom-expected.txt: * pointer-lock/lock-element-not-in-dom.html: * pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: * pointer-lock/locked-element-iframe-removed-from-dom.html: * pointer-lock/locked-element-removed-from-dom-expected.txt: * pointer-lock/locked-element-removed-from-dom.html: * pointer-lock/mouse-event-api-expected.txt: * pointer-lock/mouse-event-api.html: * pointer-lock/mouse-event-delivery-expected.txt: * pointer-lock/mouse-event-delivery.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt: * pointer-lock/pointerlockchange-event-on-lock-lost.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlockelement-null-when-pending-expected.txt: * pointer-lock/pointerlockelement-null-when-pending.html: Remove webkit prefix on pointer lock functions and events. This should have been done in r170585. Canonical link: https://commits.webkit.org/152687@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-07-08 22:36:24 +00:00
targetdiv2.requestPointerLock();
expectedTargetToBeLockedString = "targetdiv2";
Remove webkit prefix from pointer lock tests. https://bugs.webkit.org/show_bug.cgi?id=134744 Patch by Alex Christensen <achristensen@webkit.org> on 2014-07-08 Reviewed by Brady Eidson. * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock-expected.txt: * http/tests/pointer-lock/iframe-sandboxed-nested-disallow-then-allow-pointer-lock.html: * http/tests/pointer-lock/iframe-sandboxed.html: * http/tests/pointer-lock/pointerlockelement-different-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-different-origin.html: * http/tests/pointer-lock/pointerlockelement-same-origin-expected.txt: * http/tests/pointer-lock/pointerlockelement-same-origin.html: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents-expected.txt: * http/tests/pointer-lock/requestPointerLock-can-not-transfer-between-documents.html: * http/tests/resources/pointer-lock/iframe-common.js: (document.onpointerlockchange): (document.onpointerlockerror): (document.onwebkitpointerlockchange): Deleted. (document.onwebkitpointerlockerror): Deleted. * http/tests/resources/pointer-lock/pointer-lock-test-harness.js: (expectOnlyChangeEvent): (expectOnlyErrorEvent): (expectNoEvents): * pointer-lock/bug90391-move-then-window-open-crash-expected.txt: * pointer-lock/bug90391-move-then-window-open-crash.html: * pointer-lock/lock-already-locked-expected.txt: * pointer-lock/lock-already-locked.html: * pointer-lock/lock-element-not-in-dom-expected.txt: * pointer-lock/lock-element-not-in-dom.html: * pointer-lock/locked-element-iframe-removed-from-dom-expected.txt: * pointer-lock/locked-element-iframe-removed-from-dom.html: * pointer-lock/locked-element-removed-from-dom-expected.txt: * pointer-lock/locked-element-removed-from-dom.html: * pointer-lock/mouse-event-api-expected.txt: * pointer-lock/mouse-event-api.html: * pointer-lock/mouse-event-delivery-expected.txt: * pointer-lock/mouse-event-delivery.html: * pointer-lock/pointer-lock-api-expected.txt: * pointer-lock/pointer-lock-api.html: * pointer-lock/pointerlockchange-event-on-lock-lost-expected.txt: * pointer-lock/pointerlockchange-event-on-lock-lost.html: * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: * pointer-lock/pointerlockchange-pointerlockerror-events.html: * pointer-lock/pointerlockelement-null-when-pending-expected.txt: * pointer-lock/pointerlockelement-null-when-pending.html: Remove webkit prefix on pointer lock functions and events. This should have been done in r170585. Canonical link: https://commits.webkit.org/152687@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@170897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-07-08 22:36:24 +00:00
// doNextStep() called by onpointerlockchange handler.
},
Pointer Lock: Implement pointer interface https://bugs.webkit.org/show_bug.cgi?id=75762 Source/WebCore: Reviewed by Julien Chaffraix. Implement the navigator.pointer interface via a new PointerLockController class, as per http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html. The implementation is being made in steps, the feature is still behind compile-time and run-time flags, 'webkit' prefixed, and not yet enabled in any browser. (Chromium has a developer flag required.) Follow-up work will include handling DOM elements being removed, making all callbacks asynchronous, iframe permissions (similar to Full Screen), etc. PointerLockController maintains state of which Element is the current lock target and the success and failure callbacks. ChromeClient has methods added to expose the required state change requests. Tests: pointer-lock/lock-already-locked.html pointer-lock/lock-fail-responses.html pointer-lock/mouse-event-delivery.html pointer-lock/pointerlocklost-event.html * WebCore.gypi: * dom/EventNames.h: * page/ChromeClient.h: (WebCore::ChromeClient::requestPointerLock): (WebCore::ChromeClient::requestPointerUnlock): (WebCore::ChromeClient::isPointerLocked): * page/Navigator.cpp: (WebCore::Navigator::webkitPointer): * page/Page.cpp: (WebCore::Page::Page): * page/Page.h: (WebCore::Page::pointerLockController): * page/PointerLock.cpp: (WebCore::PointerLock::PointerLock): (WebCore::PointerLock::create): (WebCore::PointerLock::lock): (WebCore::PointerLock::unlock): (WebCore::PointerLock::isLocked): * page/PointerLock.h: (WebCore::PointerLock::create): * page/PointerLockController.cpp: Added. (WebCore::PointerLockController::PointerLockController): (WebCore::PointerLockController::requestPointerLock): (WebCore::PointerLockController::requestPointerUnlock): (WebCore::PointerLockController::isLocked): (WebCore::PointerLockController::didAcquirePointerLock): (WebCore::PointerLockController::didNotAcquirePointerLock): (WebCore::PointerLockController::didLosePointerLock): (WebCore::PointerLockController::dispatchLockedMouseEvent): * page/PointerLockController.h: Copied from Source/WebCore/page/PointerLock.h. Source/WebKit/chromium: Add calls to the PointerLockController added in this patch to WebCore. * src/WebViewImpl.cpp: (WebKit::WebViewImpl::close): (WebKit::WebViewImpl::didAcquirePointerLock): (WebKit::WebViewImpl::didNotAcquirePointerLock): (WebKit::WebViewImpl::didLosePointerLock): (WebKit::WebViewImpl::pointerLockMouseEvent): LayoutTests: Reviewed by Julien Chaffraix. * pointer-lock/lock-already-locked-expected.txt: Added. * pointer-lock/lock-already-locked.html: Added. * pointer-lock/lock-fail-responses-expected.txt: Added. * pointer-lock/lock-fail-responses.html: Added. * pointer-lock/mouse-event-delivery-expected.txt: Added. * pointer-lock/mouse-event-delivery.html: Added. * pointer-lock/pointerlocklost-event-expected.txt: Added. * pointer-lock/pointerlocklost-event.html: Added. Canonical link: https://commits.webkit.org/94110@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@106134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-01-27 19:06:41 +00:00
];
doNextStepWithUserGesture();
Pointer Lock: Implement pointer interface https://bugs.webkit.org/show_bug.cgi?id=75762 Source/WebCore: Reviewed by Julien Chaffraix. Implement the navigator.pointer interface via a new PointerLockController class, as per http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html. The implementation is being made in steps, the feature is still behind compile-time and run-time flags, 'webkit' prefixed, and not yet enabled in any browser. (Chromium has a developer flag required.) Follow-up work will include handling DOM elements being removed, making all callbacks asynchronous, iframe permissions (similar to Full Screen), etc. PointerLockController maintains state of which Element is the current lock target and the success and failure callbacks. ChromeClient has methods added to expose the required state change requests. Tests: pointer-lock/lock-already-locked.html pointer-lock/lock-fail-responses.html pointer-lock/mouse-event-delivery.html pointer-lock/pointerlocklost-event.html * WebCore.gypi: * dom/EventNames.h: * page/ChromeClient.h: (WebCore::ChromeClient::requestPointerLock): (WebCore::ChromeClient::requestPointerUnlock): (WebCore::ChromeClient::isPointerLocked): * page/Navigator.cpp: (WebCore::Navigator::webkitPointer): * page/Page.cpp: (WebCore::Page::Page): * page/Page.h: (WebCore::Page::pointerLockController): * page/PointerLock.cpp: (WebCore::PointerLock::PointerLock): (WebCore::PointerLock::create): (WebCore::PointerLock::lock): (WebCore::PointerLock::unlock): (WebCore::PointerLock::isLocked): * page/PointerLock.h: (WebCore::PointerLock::create): * page/PointerLockController.cpp: Added. (WebCore::PointerLockController::PointerLockController): (WebCore::PointerLockController::requestPointerLock): (WebCore::PointerLockController::requestPointerUnlock): (WebCore::PointerLockController::isLocked): (WebCore::PointerLockController::didAcquirePointerLock): (WebCore::PointerLockController::didNotAcquirePointerLock): (WebCore::PointerLockController::didLosePointerLock): (WebCore::PointerLockController::dispatchLockedMouseEvent): * page/PointerLockController.h: Copied from Source/WebCore/page/PointerLock.h. Source/WebKit/chromium: Add calls to the PointerLockController added in this patch to WebCore. * src/WebViewImpl.cpp: (WebKit::WebViewImpl::close): (WebKit::WebViewImpl::didAcquirePointerLock): (WebKit::WebViewImpl::didNotAcquirePointerLock): (WebKit::WebViewImpl::didLosePointerLock): (WebKit::WebViewImpl::pointerLockMouseEvent): LayoutTests: Reviewed by Julien Chaffraix. * pointer-lock/lock-already-locked-expected.txt: Added. * pointer-lock/lock-already-locked.html: Added. * pointer-lock/lock-fail-responses-expected.txt: Added. * pointer-lock/lock-fail-responses.html: Added. * pointer-lock/mouse-event-delivery-expected.txt: Added. * pointer-lock/mouse-event-delivery.html: Added. * pointer-lock/pointerlocklost-event-expected.txt: Added. * pointer-lock/pointerlocklost-event.html: Added. Canonical link: https://commits.webkit.org/94110@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@106134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-01-27 19:06:41 +00:00
</script>
<script src="../http/tests/resources/js-test-post.js"></script>
Pointer Lock: Implement pointer interface https://bugs.webkit.org/show_bug.cgi?id=75762 Source/WebCore: Reviewed by Julien Chaffraix. Implement the navigator.pointer interface via a new PointerLockController class, as per http://dvcs.w3.org/hg/webevents/raw-file/default/mouse-lock.html. The implementation is being made in steps, the feature is still behind compile-time and run-time flags, 'webkit' prefixed, and not yet enabled in any browser. (Chromium has a developer flag required.) Follow-up work will include handling DOM elements being removed, making all callbacks asynchronous, iframe permissions (similar to Full Screen), etc. PointerLockController maintains state of which Element is the current lock target and the success and failure callbacks. ChromeClient has methods added to expose the required state change requests. Tests: pointer-lock/lock-already-locked.html pointer-lock/lock-fail-responses.html pointer-lock/mouse-event-delivery.html pointer-lock/pointerlocklost-event.html * WebCore.gypi: * dom/EventNames.h: * page/ChromeClient.h: (WebCore::ChromeClient::requestPointerLock): (WebCore::ChromeClient::requestPointerUnlock): (WebCore::ChromeClient::isPointerLocked): * page/Navigator.cpp: (WebCore::Navigator::webkitPointer): * page/Page.cpp: (WebCore::Page::Page): * page/Page.h: (WebCore::Page::pointerLockController): * page/PointerLock.cpp: (WebCore::PointerLock::PointerLock): (WebCore::PointerLock::create): (WebCore::PointerLock::lock): (WebCore::PointerLock::unlock): (WebCore::PointerLock::isLocked): * page/PointerLock.h: (WebCore::PointerLock::create): * page/PointerLockController.cpp: Added. (WebCore::PointerLockController::PointerLockController): (WebCore::PointerLockController::requestPointerLock): (WebCore::PointerLockController::requestPointerUnlock): (WebCore::PointerLockController::isLocked): (WebCore::PointerLockController::didAcquirePointerLock): (WebCore::PointerLockController::didNotAcquirePointerLock): (WebCore::PointerLockController::didLosePointerLock): (WebCore::PointerLockController::dispatchLockedMouseEvent): * page/PointerLockController.h: Copied from Source/WebCore/page/PointerLock.h. Source/WebKit/chromium: Add calls to the PointerLockController added in this patch to WebCore. * src/WebViewImpl.cpp: (WebKit::WebViewImpl::close): (WebKit::WebViewImpl::didAcquirePointerLock): (WebKit::WebViewImpl::didNotAcquirePointerLock): (WebKit::WebViewImpl::didLosePointerLock): (WebKit::WebViewImpl::pointerLockMouseEvent): LayoutTests: Reviewed by Julien Chaffraix. * pointer-lock/lock-already-locked-expected.txt: Added. * pointer-lock/lock-already-locked.html: Added. * pointer-lock/lock-fail-responses-expected.txt: Added. * pointer-lock/lock-fail-responses.html: Added. * pointer-lock/mouse-event-delivery-expected.txt: Added. * pointer-lock/mouse-event-delivery.html: Added. * pointer-lock/pointerlocklost-event-expected.txt: Added. * pointer-lock/pointerlocklost-event.html: Added. Canonical link: https://commits.webkit.org/94110@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@106134 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-01-27 19:06:41 +00:00
</body>
</html>