Modified: trunk/LayoutTests/pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt (120247 => 120248)
--- trunk/LayoutTests/pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt 2012-06-13 21:07:05 UTC (rev 120247)
+++ trunk/LayoutTests/pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt 2012-06-13 21:09:57 UTC (rev 120248)
@@ -12,7 +12,6 @@
PASS onwebkitpointerlockchange received after: Lock targetDiv1 again.
Lock targetDiv2.
PASS onwebkitpointerlockchange received after: Lock targetDiv2.
-PASS onwebkitpointerlockchange received after: Lock targetDiv2.
Lock targetDiv2 again.
PASS onwebkitpointerlockchange received after: Lock targetDiv2 again.
Lock null.
@@ -20,13 +19,11 @@
Lock targetIframe1 (handler for iframe1).
PASS onwebkitpointerlockchange received after: Lock targetIframe1 (handler for iframe1).
PASS onwebkitpointerlockchange received after: Lock targetIframe1.
-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 onwebkitpointerlockchange received after: Lock targetIframe2 (handler for iframe1).
Unlock targetIframe2.
Unlock targetIframe2 (handler for iframe1).
Unlock targetIframe2 (handler for iframe2).
Modified: trunk/LayoutTests/pointer-lock/pointerlockchange-pointerlockerror-events.html (120247 => 120248)
--- trunk/LayoutTests/pointer-lock/pointerlockchange-pointerlockerror-events.html 2012-06-13 21:07:05 UTC (rev 120247)
+++ trunk/LayoutTests/pointer-lock/pointerlockchange-pointerlockerror-events.html 2012-06-13 21:09:57 UTC (rev 120248)
@@ -37,20 +37,18 @@
};
};
- function expectOnlyChangeEvent(message, expectedCalls, targetDocument) {
+ function expectOnlyChangeEvent(message, targetDocument) {
debug(" " + message);
- expectedCalls = expectedCalls !== undefined ? expectedCalls : 1;
targetDocument = targetDocument !== undefined ? targetDocument : document;
- eventExpected("onwebkitpointerlockchange", message, expectedCalls, targetDocument);
+ eventExpected("onwebkitpointerlockchange", message, 1, targetDocument);
eventExpected("onwebkitpointerlockerror", message, 0, targetDocument);
};
- function expectOnlyErrorEvent(message, expectedCalls, targetDocument) {
+ function expectOnlyErrorEvent(message, targetDocument) {
debug(" " + message);
- expectedCalls = expectedCalls !== undefined ? expectedCalls : 1;
targetDocument = targetDocument !== undefined ? targetDocument : document;
eventExpected("onwebkitpointerlockchange", message, 0, targetDocument);
- eventExpected("onwebkitpointerlockerror", message, expectedCalls, targetDocument);
+ eventExpected("onwebkitpointerlockerror", message, 1, targetDocument);
};
function expectNoEvents(message, targetDocument) {
@@ -89,12 +87,7 @@
navigator.webkitPointer.lock(targetDiv1);
},
function () {
- // FIXME: Only 1 change event should be expected.
- // But, we will see 2 until we remove the old code for
- // pointerlocklost and remove the call to didLosePointerLock
- // made in PointerLockController::requestPointerLock.
- // (https://bugs.webkit.org/show_bug.cgi?id=84402)
- expectOnlyChangeEvent("Lock targetDiv2.", 2);
+ expectOnlyChangeEvent("Lock targetDiv2.");
navigator.webkitPointer.lock(targetDiv2);
},
function () {
@@ -115,13 +108,8 @@
targetIframe2._onload_ = function () { doNextStep(); }
},
function () {
- // FIXME: Only 1 change event should be expected.
- // But, we will see 2 until we remove the old code for
- // pointerlocklost and remove the call to didLosePointerLock
- // made in PointerLockController::requestPointerLock.
- // (https://bugs.webkit.org/show_bug.cgi?id=84402)
- expectOnlyChangeEvent("Lock targetIframe1.", 2);
- expectOnlyChangeEvent("Lock targetIframe1 (handler for iframe1).", 1, targetIframe1.contentDocument);
+ expectOnlyChangeEvent("Lock targetIframe1.");
+ expectOnlyChangeEvent("Lock targetIframe1 (handler for iframe1).", targetIframe1.contentDocument);
navigator.webkitPointer.lock(targetIframe1.contentDocument.body);
},
function () {
@@ -129,13 +117,8 @@
},
function () {
expectNoEvents("Lock targetIframe2.");
- // FIXME: Only 1 change event should be expected.
- // But, we will see 2 until we remove the old code for
- // pointerlocklost and remove the call to didLosePointerLock
- // made in PointerLockController::requestPointerLock.
- // (https://bugs.webkit.org/show_bug.cgi?id=84402)
- expectOnlyChangeEvent("Lock targetIframe2 (handler for iframe1).", 2, targetIframe1.contentDocument);
- expectOnlyChangeEvent("Lock targetIframe2 (handler for iframe2).", 1, targetIframe2.contentDocument);
+ expectOnlyChangeEvent("Lock targetIframe2 (handler for iframe1).", targetIframe1.contentDocument);
+ expectOnlyChangeEvent("Lock targetIframe2 (handler for iframe2).", targetIframe2.contentDocument);
navigator.webkitPointer.lock(targetIframe2.contentDocument.body);
},
function () {
@@ -144,7 +127,7 @@
function () {
expectNoEvents("Unlock targetIframe2.");
expectNoEvents("Unlock targetIframe2 (handler for iframe1).", targetIframe1.contentDocument);
- expectOnlyChangeEvent("Unlock targetIframe2 (handler for iframe2).", 1, targetIframe2.contentDocument);
+ expectOnlyChangeEvent("Unlock targetIframe2 (handler for iframe2).", targetIframe2.contentDocument);
navigator.webkitPointer.unlock();
},
function () {
Modified: trunk/Source/WebCore/page/PointerLockController.cpp (120247 => 120248)
--- trunk/Source/WebCore/page/PointerLockController.cpp 2012-06-13 21:07:05 UTC (rev 120247)
+++ trunk/Source/WebCore/page/PointerLockController.cpp 2012-06-13 21:09:57 UTC (rev 120248)
@@ -62,7 +62,7 @@
if (successCallback)
successCallback->handleEvent();
} else {
- didLosePointerLock();
+ didLosePointerLock(false);
m_element = target;
if (successCallback)
successCallback->handleEvent();
@@ -127,10 +127,11 @@
callbackToIssue->handleEvent();
}
-void PointerLockController::didLosePointerLock()
+void PointerLockController::didLosePointerLock(bool sendChangeEvent)
{
// FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402)
- enqueueEvent(eventNames().webkitpointerlockchangeEvent, m_element.get());
+ if (sendChangeEvent)
+ enqueueEvent(eventNames().webkitpointerlockchangeEvent, m_element.get());
// FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402)
RefPtr<Element> elementToNotify(m_element);