Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4197)

Unified Diff: chrome/test/data/fullscreen_keyboardlock.html

Issue 2922773002: Add BrowserCommandController Interactive Test (Closed)
Patch Set: Build break on platforms other than MacOSX Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/fullscreen_keyboardlock.html
diff --git a/chrome/test/data/fullscreen_keyboardlock.html b/chrome/test/data/fullscreen_keyboardlock.html
new file mode 100644
index 0000000000000000000000000000000000000000..7aeb3004e66e56a6fee2b33195d866c6e5083f4e
--- /dev/null
+++ b/chrome/test/data/fullscreen_keyboardlock.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<!--
+ The html/js to help testing keyboard events. It
+ - receives keybord events and preventDefault(),
+ - writes the key codes to /html/body/div[@id='container'],
+ - sends the key codes to window.domAutomationController once KeyX is received.
+-->
+<html>
+ <head>
+ <title>Fullscreen Keyboard Lock Test</title>
+ <script>
+ let done = false;
+ function getKeyEventReport() {
+ return new Promise((resolve, reject) => {
+ const register = () => {
+ window.setTimeout(() => {
+ if (done) {
+ resolve();
+ } else {
+ register();
+ }
+ }, 100);
+ };
+ register();
+ }).then(() => {
+ window.domAutomationController.send(container().innerHTML);
+ });
+ };
+
+ function isMacOSFullscreenShortcut(e) {
+ return e.metaKey &&
+ e.ctrlKey &&
+ !e.altKey &&
+ !e.shiftKey &&
+ e.code == "KeyF";
+ }
+
+ function isF11FullscreenShortcut(e) {
+ return !e.metaKey &&
+ !e.ctrlKey &&
+ !e.altKey &&
+ !e.shiftKey &&
+ e.code == "F11";
+ }
+
+ function isBrowserFullscreenShortcut(e) {
+ return isMacOSFullscreenShortcut(e) ||
+ isF11FullscreenShortcut(e);
+ }
+
+ function container() {
+ return document.getElementById('container');
+ }
+
+ function consumeEvent(type, e) {
+ container().innerHTML += type + ' ' + e.code + '\n';
+ e.preventDefault();
+ }
+
+ function init() {
+ document.addEventListener('keydown', (e) => {
+ // The web content triggers fullscreen on the "S" key down event.
+ if (e.code == 'KeyS') {
+ container().webkitRequestFullscreen();
+ } else if (isBrowserFullscreenShortcut(e)) {
+ // Web page can consume fullscreen shortcut when the page is in
+ // window mode, but it's not expected in test cases.
+ return;
+ }
+ consumeEvent('keydown', e);
+ });
+
+ document.addEventListener('keyup', (e) => {
+ if (isBrowserFullscreenShortcut(e)) {
+ return;
+ }
+ consumeEvent('keyup', e);
+
+ if (e.code == 'KeyX') {
+ done = true;
+ }
+ });
+
+ document.addEventListener('keypress', (e) => {
+ consumeEvent('keypress', e);
+ });
+ }
+ </script>
+ </head>
+ <body onload='init()'>
+ <div id='container'>
+ </div>
+ </body>
+</html>

Powered by Google App Engine
This is Rietveld 408576698