OLD | NEW |
---|---|
(Empty) | |
1 <!DOCTYPE html> | |
msw
2017/06/30 20:17:29
Someone more familiar with test html helper files
| |
2 <!-- | |
3 The html/js to help testing keyboard events. It | |
4 - receives keybord events and preventDefault(), | |
5 - writes the key codes to /html/body/div[@id='container'], | |
6 - sends the key codes to window.domAutomationController once KeyX is received. | |
7 --> | |
8 <html> | |
9 <head> | |
10 <title>Fullscreen Keyboard Lock Test</title> | |
11 <script> | |
12 let done = false; | |
13 function report() { | |
msw
2017/06/30 20:17:29
nit: Is "report" a common name for this type of fu
Hzj_jie
2017/07/01 01:56:48
Done.
| |
14 return new Promise((resolve, reject) => { | |
15 const register = () => { | |
16 window.setTimeout(() => { | |
17 if (done) { | |
18 resolve(); | |
19 } else { | |
20 register(); | |
21 } | |
22 }, 100); | |
23 }; | |
24 register(); | |
25 }).then(() => { | |
26 window.domAutomationController.send(container().innerHTML); | |
27 }); | |
28 }; | |
29 | |
30 function isMacOSFullscreenShortcut(e) { | |
31 return e.metaKey && | |
32 e.ctrlKey && | |
33 !e.altKey && | |
34 !e.shiftKey && | |
35 e.code == "KeyF"; | |
36 } | |
37 | |
38 function isF11FullscreenShortcut(e) { | |
39 return !e.metaKey && | |
40 !e.ctrlKey && | |
41 !e.altKey && | |
42 !e.shiftKey && | |
43 e.code == "F11"; | |
44 } | |
45 | |
46 function isBrowserFullscreenShortcut(e) { | |
47 return isMacOSFullscreenShortcut(e) || | |
48 isF11FullscreenShortcut(e); | |
49 } | |
50 | |
51 function container() { | |
52 return document.getElementById('container'); | |
53 } | |
54 | |
55 function consumeEvent(t, e) { | |
msw
2017/06/30 20:17:29
nit: give a better name for the type/title than 't
Hzj_jie
2017/07/01 01:56:48
Done.
| |
56 container().innerHTML += t + ' ' + e.code + '\n'; | |
57 e.preventDefault(); | |
58 } | |
59 | |
60 function init() { | |
61 document.addEventListener('keydown', (e) => { | |
msw
2017/06/30 20:17:29
nit: add a comment explaining the purpose of this
Hzj_jie
2017/07/01 01:56:48
Done.
| |
62 if (e.code == 'KeyS') { | |
63 container().webkitRequestFullscreen(); | |
64 } else if (isBrowserFullscreenShortcut(e)) { | |
msw
2017/06/30 20:17:29
aside q: Can websites preventDefault on the fullsc
Hzj_jie
2017/07/01 01:56:48
No, otherwise the "ExceptForF11" test will fail. B
msw
2017/07/05 19:11:44
Actually, it might be interesting to construct a t
Hzj_jie
2017/07/07 23:18:10
Yes, I can do it in a separated change.
| |
65 return; | |
66 } | |
67 consumeEvent('keydown', e); | |
68 }); | |
69 | |
70 document.addEventListener('keyup', (e) => { | |
71 if (isBrowserFullscreenShortcut(e)) { | |
72 return; | |
73 } | |
74 consumeEvent('keyup', e); | |
75 | |
76 if (e.code == 'KeyX') { | |
77 done = true; | |
78 } | |
79 }); | |
80 | |
81 document.addEventListener('keypress', (e) => { | |
82 consumeEvent('keypress', e); | |
83 }); | |
84 } | |
85 </script> | |
86 </head> | |
87 <body onload='init()'> | |
88 <div id='container'> | |
89 </div> | |
90 </body> | |
91 </html> | |
OLD | NEW |