Changeset 119763 in webkit
- Timestamp:
- Jun 7, 2012 3:40:19 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r119760 r119763 1 2012-06-06 Vincent Scheib <scheib@chromium.org> 2 3 Add new Pointer Lock spec events webkitpointerlockchange and webkitpointerlockerror 4 https://bugs.webkit.org/show_bug.cgi?id=88377 5 6 Reviewed by Dimitri Glazkov. 7 8 Part of a series of refactoring changes to update pointer lock API to 9 the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 10 11 New change and error events added. Follow up patches will remove 12 the previous callbacks and pointerlocklost event. Tests updated 13 to include the new events, and a new test added specifically for 14 the new events, pointerlockchange-pointerlockerror-events.html. 15 16 * pointer-lock/lock-already-locked-expected.txt: 17 * pointer-lock/lock-already-locked.html: 18 * pointer-lock/pointer-lock-api-expected.txt: 19 * pointer-lock/pointer-lock-api.html: 20 * pointer-lock/pointerlockchange-pointerlockerror-events-expected.txt: Added. 21 * pointer-lock/pointerlockchange-pointerlockerror-events.html: Added. 22 * pointer-lock/pointerlocklost-event-expected.txt: 23 * pointer-lock/pointerlocklost-event.html: 24 1 25 2012-06-07 Takashi Sakamoto <tasak@google.com> 2 26 -
trunk/LayoutTests/pointer-lock/lock-already-locked-expected.txt
r106134 r119763 7 7 PASS Lock target1 succeeded. 8 8 PASS navigator.webkitPointer.isLocked is true 9 PASS document.onwebkitpointerlockchange event received. 9 10 PASS Lock target1 succeeded again. 10 11 PASS navigator.webkitPointer.isLocked is true 12 PASS document.onwebkitpointerlockchange event received. 11 13 PASS expectTarget1Unlock is true 12 14 PASS Lock target2 succeeded. 13 15 PASS navigator.webkitPointer.isLocked is true 16 PASS document.onwebkitpointerlockchange event received. 17 PASS document.onwebkitpointerlockchange event received. 14 18 PASS successfullyParsed is true 15 19 -
trunk/LayoutTests/pointer-lock/lock-already-locked.html
r106134 r119763 16 16 targetdiv2 = document.getElementById("target2"); 17 17 18 // Expect change event only for all transitions below. 19 document.onwebkitpointerlockchange = 20 function () { testPassed("document.onwebkitpointerlockchange event received."); }; 21 document.onwebkitpointerlockerror = 22 function () { testFailed("document.onwebkitpointerlockerror event received."); finishJSTest(); }; 23 18 24 var expectTarget1Unlock = false; 19 25 targetdiv1.addEventListener("webkitpointerlocklost", … … 25 31 currentStep = 0; 26 32 function doNextStep() { 27 todo[currentStep++]();33 setTimeout(function () { todo[currentStep++](); }, 0); 28 34 } 29 35 todo = [ -
trunk/LayoutTests/pointer-lock/pointer-lock-api-expected.txt
r105011 r119763 5 5 PASS navigator.webkitPointer.lock(document) is undefined 6 6 PASS navigator.webkitPointer.unlock() is undefined 7 PASS document.onwebkitpointerlockchange is defined. 8 PASS document.onwebkitpointerlockerror is defined. 7 9 PASS successfullyParsed is true 8 10 -
trunk/LayoutTests/pointer-lock/pointer-lock-api.html
r106134 r119763 11 11 shouldEvaluateTo("navigator.webkitPointer.lock(document)", "undefined"); 12 12 shouldEvaluateTo("navigator.webkitPointer.unlock()", "undefined"); 13 shouldBeDefined("document.onwebkitpointerlockchange"); 14 shouldBeDefined("document.onwebkitpointerlockerror"); 13 15 </script> 14 16 <script src="../fast/js/resources/js-test-post.js"></script> -
trunk/LayoutTests/pointer-lock/pointerlocklost-event-expected.txt
r106134 r119763 10 10 PASS webkitpointerlocklost handler call 1 11 11 PASS All expected webkitpointerlocklost events received. 12 PASS onwebkitpointerlockchange received. 13 PASS All expected onwebkitpointerlockchange events received. 12 14 PASS navigator.webkitPointer.isLocked is false 13 15 PASS navigator.webkitPointer.isLocked is true … … 16 18 PASS webkitpointerlocklost handler call 1 17 19 PASS All expected webkitpointerlocklost events received. 20 PASS onwebkitpointerlockchange received. 21 PASS All expected onwebkitpointerlockchange events received. 18 22 PASS navigator.webkitPointer.isLocked is false 19 23 PASS successfullyParsed is true -
trunk/LayoutTests/pointer-lock/pointerlocklost-event.html
r106134 r119763 9 9 </div> 10 10 <script> 11 // FIXME: Rename this test to pointerlockchange-event-on-lock-lost. (https://bugs.webkit.org/show_bug.cgi?id=84402) 12 11 13 description("Test that pointerlocklost event is dispatched.") 12 14 window.jsTestIsAsync = true; … … 15 17 targetdiv = document.getElementById("target"); 16 18 19 // FIXME: Keep pointerlockchange and pointerlockerror event usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) 20 document.onwebkitpointerlockchange = lockchangeToUnlockedHandler; 21 document.onwebkitpointerlockerror = 22 function () { testFailed("document.onwebkitpointerlockerror dispatched"); finishJSTest(); }; 23 lockchangeToUnlockedHandlers = 1; 24 25 lockchangeToUnlockedReceipts = 0; 26 function lockchangeToUnlockedHandler() { 27 if (navigator.webkitPointer.isLocked == false) { 28 testPassed("onwebkitpointerlockchange received."); 29 lockchangeToUnlockedReceipts++; 30 if (lockchangeToUnlockedReceipts == lockchangeToUnlockedHandlers) { 31 testPassed("All expected onwebkitpointerlockchange events received."); 32 } 33 } 34 } 35 36 // FIXME: Remove pointerlocklost usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) 17 37 document.addEventListener("webkitpointerlocklost", locklostHandler); 18 38 targetdiv.addEventListener("webkitpointerlocklost", locklostHandler); … … 31 51 currentStep = 0; 32 52 function doNextStep() { 33 todo[currentStep++]();53 setTimeout(function () { todo[currentStep++](); }, 0); 34 54 } 35 55 todo = [ … … 68 88 function () { 69 89 debug("Host initiated unlock.") 90 lockchangeToUnlockedReceipts = 0; 70 91 locklostreceipts = 0; 71 92 layoutTestController.didLosePointerLock(); -
trunk/Source/WebCore/ChangeLog
r119762 r119763 1 2012-06-06 Vincent Scheib <scheib@chromium.org> 2 3 Add new Pointer Lock spec events webkitpointerlockchange and webkitpointerlockerror 4 https://bugs.webkit.org/show_bug.cgi?id=88377 5 6 Reviewed by Dimitri Glazkov. 7 8 Part of a series of refactoring changes to update pointer lock API to 9 the fullscreen locking style. https://bugs.webkit.org/show_bug.cgi?id=84402 10 11 New change and error events added. Follow up patches will remove 12 the previous callbacks and pointerlocklost event. Tests updated 13 to include the new events, and a new test added specifically for 14 the new events, pointerlockchange-pointerlockerror-events.html. 15 16 Test: pointer-lock/pointerlockchange-pointerlockerror-events.html 17 18 * dom/Document.h: 19 (Document): 20 * dom/Document.idl: 21 * dom/EventNames.h: 22 (WebCore): 23 * page/PointerLockController.cpp: 24 (WebCore::PointerLockController::requestPointerLock): 25 (WebCore::PointerLockController::didAcquirePointerLock): 26 (WebCore::PointerLockController::didNotAcquirePointerLock): 27 (WebCore::PointerLockController::didLosePointerLock): 28 (WebCore::PointerLockController::enqueueEvent): 29 (WebCore): 30 * page/PointerLockController.h: 31 (PointerLockController): 32 1 33 2012-06-07 Sheriff Bot <webkit.review.bot@gmail.com> 2 34 -
trunk/Source/WebCore/dom/Document.h
r119690 r119763 331 331 DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitfullscreenerror); 332 332 #endif 333 #if ENABLE(POINTER_LOCK) 334 DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitpointerlockchange); 335 DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitpointerlockerror); 336 #endif 333 337 #if ENABLE(PAGE_VISIBILITY_API) 334 338 DEFINE_ATTRIBUTE_EVENT_LISTENER(webkitvisibilitychange); -
trunk/Source/WebCore/dom/Document.idl
r118484 r119763 331 331 attribute [NotEnumerable, Conditional=FULLSCREEN_API] EventListener onwebkitfullscreenchange; 332 332 attribute [NotEnumerable, Conditional=FULLSCREEN_API] EventListener onwebkitfullscreenerror; 333 attribute [NotEnumerable, Conditional=POINTER_LOCK] EventListener onwebkitpointerlockchange; 334 attribute [NotEnumerable, Conditional=POINTER_LOCK] EventListener onwebkitpointerlockerror; 333 335 #endif 334 336 -
trunk/Source/WebCore/dom/EventNames.h
r114067 r119763 221 221 \ 222 222 macro(webkitpointerlocklost) \ 223 macro(webkitpointerlockchange) \ 224 macro(webkitpointerlockerror) \ 223 225 \ 224 226 macro(webkitRegionLayoutUpdate) \ -
trunk/Source/WebCore/page/PointerLockController.cpp
r106134 r119763 49 49 void PointerLockController::requestPointerLock(Element* target, PassRefPtr<VoidCallback> successCallback, PassRefPtr<VoidCallback> failureCallback) 50 50 { 51 if (!target) 52 return; 53 51 54 if (isLocked()) { 55 // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) 56 enqueueEvent(eventNames().webkitpointerlockchangeEvent, target); 57 if (m_element->document() != target->document()) 58 enqueueEvent(eventNames().webkitpointerlockchangeEvent, m_element.get()); 59 60 // FIXME: Remove callback usage, keep assignment of m_element = target. (https://bugs.webkit.org/show_bug.cgi?id=84402) 52 61 if (m_element == target) { 53 62 if (successCallback) … … 63 72 m_successCallback = successCallback; 64 73 m_failureCallback = failureCallback; 65 } else if (failureCallback) 66 failureCallback->handleEvent(); 74 } else { 75 // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) 76 enqueueEvent(eventNames().webkitpointerlockerrorEvent, target); 77 78 // FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) 79 if (failureCallback) 80 failureCallback->handleEvent(); 81 } 67 82 } 68 83 … … 79 94 void PointerLockController::didAcquirePointerLock() 80 95 { 96 // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) 97 enqueueEvent(eventNames().webkitpointerlockchangeEvent, m_element.get()); 98 99 // FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) 81 100 RefPtr<Element> elementToNotify(m_element); 82 101 RefPtr<VoidCallback> callbackToIssue(m_successCallback); … … 90 109 void PointerLockController::didNotAcquirePointerLock() 91 110 { 111 // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) 112 enqueueEvent(eventNames().webkitpointerlockerrorEvent, m_element.get()); 113 114 // FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) 92 115 RefPtr<Element> elementToNotify(m_element); 93 116 RefPtr<VoidCallback> callbackToIssue(m_failureCallback); … … 102 125 void PointerLockController::didLosePointerLock() 103 126 { 127 // FIXME: Keep enqueueEvent usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) 128 enqueueEvent(eventNames().webkitpointerlockchangeEvent, m_element.get()); 129 130 // FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) 104 131 RefPtr<Element> elementToNotify(m_element); 105 132 m_element = 0; … … 122 149 } 123 150 151 void PointerLockController::enqueueEvent(const AtomicString& type, Element* element) 152 { 153 if (!element) 154 return; 155 element->document()->enqueueDocumentEvent(Event::create(type, true, false)); 156 } 157 124 158 } // namespace WebCore 125 159 -
trunk/Source/WebCore/page/PointerLockController.h
r106134 r119763 55 55 private: 56 56 explicit PointerLockController(Page*); 57 void enqueueEvent(const AtomicString& type, Element*); 57 58 Page* m_page; 58 59 RefPtr<Element> m_element; 60 61 // FIXME: Remove callback usage. (https://bugs.webkit.org/show_bug.cgi?id=84402) 59 62 RefPtr<VoidCallback> m_successCallback; 60 63 RefPtr<VoidCallback> m_failureCallback;
Note: See TracChangeset
for help on using the changeset viewer.