| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <title>Fullscreen and Mouse Lock Scripts</title> | 4 <title>Fullscreen and Mouse Lock Scripts</title> |
| 5 <style type="text/css"> | 5 <style type="text/css"> |
| 6 #HTMLCursor { | 6 #HTMLCursor { |
| 7 border: solid black 1px; | 7 border: solid black 1px; |
| 8 background: yellow; | 8 background: yellow; |
| 9 display: inline; | 9 display: inline; |
| 10 position: absolute; | 10 position: absolute; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 | 22 |
| 23 function exitFullscreen() { | 23 function exitFullscreen() { |
| 24 console.log("exitFullscreen()"); | 24 console.log("exitFullscreen()"); |
| 25 document.webkitCancelFullScreen(); | 25 document.webkitCancelFullScreen(); |
| 26 } | 26 } |
| 27 | 27 |
| 28 // Wait for notification from JS, then notify test of success or failure | 28 // Wait for notification from JS, then notify test of success or failure |
| 29 // callback that the click has registered and the mouse lock state has changed. | 29 // callback that the click has registered and the mouse lock state has changed. |
| 30 function lockMouse1(callback) { | 30 function lockMouse1(callback) { |
| 31 console.log("lockMouse1()"); | 31 console.log("lockMouse1()"); |
| 32 navigator.webkitPointer.lock(document.getElementById("lockTarget1"), | 32 var target = document.getElementById("lockTarget1"); |
| 33 function() { | 33 |
| 34 function failure() { |
| 35 console.log("lock failed"); |
| 36 if (callback) { |
| 37 callback("failure"); |
| 38 } |
| 39 }; |
| 40 function possibleSuccess() { |
| 41 if (document.webkitPointerLockElement == target) { |
| 34 console.log("lock success"); | 42 console.log("lock success"); |
| 35 if (callback) { | 43 if (callback) |
| 36 callback("success"); | 44 callback("success"); |
| 37 } | 45 } else { |
| 38 }, | 46 failure(); |
| 39 function() { | |
| 40 console.log("lock failed"); | |
| 41 if (callback) { | |
| 42 callback("failure"); | |
| 43 } | |
| 44 } | 47 } |
| 45 ); | 48 }; |
| 49 document.onwebkitpointerlockchange = possibleSuccess; |
| 50 document.onwebkitpointerlockerror = failure; |
| 51 target.webkitRequestPointerLock(); |
| 46 } | 52 } |
| 47 | 53 |
| 48 var lock_result1 = ""; | |
| 49 // In the PyAuto test the fullscreen is initiated, accepted and enters into a | 54 // In the PyAuto test the fullscreen is initiated, accepted and enters into a |
| 50 // wait state reading the value of lock_result1. One of the two asynchronous | 55 // wait state reading the value of lock_result. One of the two asynchronous |
| 51 // functions in the JS will be executed. The PyAuto code waits for lock_result | 56 // functions in the JS will be executed. The PyAuto code waits for lock_result |
| 52 // to return "success" or "failure". Sample PyAuto code: | 57 // to return "success" or "failure". Sample PyAuto code: |
| 53 // lock_result = self._driver.execute_script('lockMouse1AndSetLockResult()') | 58 // lock_result = self._driver.execute_script('lockMouse1AndSetLockResult()') |
| 59 function lockMouseAndSetLockResult(targetId) { |
| 60 var target = document.getElementById(targetId); |
| 61 lock_result = ""; |
| 62 |
| 63 function failure() { |
| 64 console.log("lock failed"); |
| 65 lock_result = "failure" |
| 66 }; |
| 67 function possibleSuccess() { |
| 68 if (document.webkitPointerLockElement == target) { |
| 69 console.log("lock success"); |
| 70 lock_result = "success" |
| 71 } else { |
| 72 failure(); |
| 73 } |
| 74 }; |
| 75 document.onwebkitpointerlockchange = possibleSuccess; |
| 76 document.onwebkitpointerlockerror = failure; |
| 77 target.webkitRequestPointerLock(); |
| 78 } |
| 79 |
| 54 function lockMouse1AndSetLockResult() { | 80 function lockMouse1AndSetLockResult() { |
| 55 console.log("lockMouse1AndSetLockResult()"); | 81 console.log("lockMouse1AndSetLockResult()"); |
| 56 lock_result1 = ""; | 82 lockMouseAndSetLockResult("lockTarget1"); |
| 57 navigator.webkitPointer.lock(document.getElementById("lockTarget1"), | |
| 58 function() { | |
| 59 console.log("lock success"); | |
| 60 lock_result = "success" | |
| 61 }, | |
| 62 function() { | |
| 63 console.log("lock failed"); | |
| 64 lock_result = "failure" | |
| 65 } | |
| 66 ); | |
| 67 } | 83 } |
| 68 | 84 |
| 69 // When mouse lock is initiated and accepted, PyAuto test will wait for the | 85 // When mouse lock is initiated and accepted, PyAuto test will wait for the |
| 70 // lock_result to return "success" or "failure" to initiate the next action. | 86 // lock_result to return "success" or "failure" to initiate the next action. |
| 71 function lockMouse2() { | 87 function lockMouse2() { |
| 72 console.log("lockMouse2()"); | 88 console.log("lockMouse2()"); |
| 73 navigator.webkitPointer.lock(document.getElementById("lockTarget2"), | 89 lockMouseAndSetLockResult("lockTarget2"); |
| 74 function() { | |
| 75 console.log("lock success"); | |
| 76 lock_result = "success" | |
| 77 }, | |
| 78 function() { | |
| 79 console.log("lock failed") | |
| 80 lock_result = "failure" | |
| 81 } | |
| 82 ); | |
| 83 } | 90 } |
| 84 | 91 |
| 85 function delayedLockMouse1() { | 92 function delayedLockMouse1() { |
| 86 console.log("delayedLockMouse1()"); | 93 console.log("delayedLockMouse1()"); |
| 87 window.setTimeout(lockMouse1, 1010); | 94 window.setTimeout(lockMouse1, 1010); |
| 88 // Delay must be over 1 second or the click that initiated the delayed action | 95 // Delay must be over 1 second or the click that initiated the delayed action |
| 89 // may still be considered active and treat this as a user gesture. | 96 // may still be considered active and treat this as a user gesture. |
| 90 // We want to test a lock not associated with a user gesture. | 97 // We want to test a lock not associated with a user gesture. |
| 91 } | 98 } |
| 92 | 99 |
| 93 function spamLockMouse2() { | 100 function spamLockMouse2() { |
| 94 console.log("spamLockMouse2()") | 101 console.log("spamLockMouse2()") |
| 95 window.setInterval(lockMouse2, 111); | 102 window.setInterval(lockMouse2, 111); |
| 96 } | 103 } |
| 97 | 104 |
| 98 function unlockMouse() { | 105 function unlockMouse() { |
| 99 console.log("unlockMouse()"); | 106 console.log("unlockMouse()"); |
| 100 navigator.webkitPointer.unlock(); | 107 document.webkitExitPointerLock(); |
| 101 } | 108 } |
| 102 | 109 |
| 103 function enterFullscreenAndLockMouse1() { | 110 function enterFullscreenAndLockMouse1() { |
| 104 console.log("enterFullscreenAndLockMouse1()"); | 111 console.log("enterFullscreenAndLockMouse1()"); |
| 105 enterFullscreen(); | 112 enterFullscreen(); |
| 106 lockMouse1(); | 113 lockMouse1(); |
| 107 } | 114 } |
| 108 | 115 |
| 109 function lockMouse1AndEnterFullscreen() { | 116 function lockMouse1AndEnterFullscreen() { |
| 110 console.log("lockMouse1AndEnterFullscreen()"); | 117 console.log("lockMouse1AndEnterFullscreen()"); |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 onclick="clickElement(this.id);"> | 232 onclick="clickElement(this.id);"> |
| 226 anchor link | 233 anchor link |
| 227 </a> | 234 </a> |
| 228 navigates to an anchor on this page. The browser should not exit tab | 235 navigates to an anchor on this page. The browser should not exit tab |
| 229 fullscreen or mouse lock.</p> | 236 fullscreen or mouse lock.</p> |
| 230 </div> | 237 </div> |
| 231 <p>This text is outside of the container that is made fullscreen. This text | 238 <p>This text is outside of the container that is made fullscreen. This text |
| 232 should not be visible when fullscreen.</p> | 239 should not be visible when fullscreen.</p> |
| 233 </body> | 240 </body> |
| 234 </html> | 241 </html> |
| OLD | NEW |