| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 /** | 5 /** |
| 6 * Namespace for keyboard utility functions. | 6 * Namespace for keyboard utility functions. |
| 7 */ | 7 */ |
| 8 var keyboard = {}; | 8 var keyboard = {}; |
| 9 | 9 |
| 10 /** | 10 /** |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 */ | 21 */ |
| 22 var keyboardHostOrigin; | 22 var keyboardHostOrigin; |
| 23 | 23 |
| 24 /** | 24 /** |
| 25 * Handles the initial messaging posted from webview, where this script is | 25 * Handles the initial messaging posted from webview, where this script is |
| 26 * injected. | 26 * injected. |
| 27 * @param {Event} event Message event posted from webview. | 27 * @param {Event} event Message event posted from webview. |
| 28 * @private | 28 * @private |
| 29 */ | 29 */ |
| 30 keyboard.onInitMessage_ = function(event) { | 30 keyboard.onInitMessage_ = function(event) { |
| 31 if (event.data == 'initialMessage' && | 31 if (event.data == 'initialMessage' && event.origin == 'chrome://oobe') { |
| 32 event.origin == 'chrome://oobe') { | |
| 33 keyboardHostWindow = event.source; | 32 keyboardHostWindow = event.source; |
| 34 keyboardHostOrigin = event.origin; | 33 keyboardHostOrigin = event.origin; |
| 35 } | 34 } |
| 36 }; | 35 }; |
| 37 | 36 |
| 38 /** | 37 /** |
| 39 * Handles the actual focus advancing by raising tab/shift-tab key events | 38 * Handles the actual focus advancing by raising tab/shift-tab key events |
| 40 * on C++ side. | 39 * on C++ side. |
| 41 * @param {boolean} reverse true if focus is moving backward, otherwise forward. | 40 * @param {boolean} reverse true if focus is moving backward, otherwise forward. |
| 42 */ | 41 */ |
| 43 keyboard.onAdvanceFocus = function(reverse) { | 42 keyboard.onAdvanceFocus = function(reverse) { |
| 44 chrome.send('raiseTabKeyEvent', [reverse]); | 43 chrome.send('raiseTabKeyEvent', [reverse]); |
| 45 }; | 44 }; |
| 46 | 45 |
| 47 /** | 46 /** |
| 48 * Swallows keypress and keyup events of arrow keys. | 47 * Swallows keypress and keyup events of arrow keys. |
| 49 * @param {!Event} event Raised event. | 48 * @param {!Event} event Raised event. |
| 50 * @private | 49 * @private |
| 51 */ | 50 */ |
| 52 keyboard.onKeyIgnore_ = function(event) { | 51 keyboard.onKeyIgnore_ = function(event) { |
| 53 event = /** @type {!KeyboardEvent} */(event); | 52 event = /** @type {!KeyboardEvent} */ (event); |
| 54 | 53 |
| 55 if (event.ctrlKey || event.shiftKey || event.altKey || event.metaKey) | 54 if (event.ctrlKey || event.shiftKey || event.altKey || event.metaKey) |
| 56 return; | 55 return; |
| 57 | 56 |
| 58 if (event.key == 'ArrowLeft' || | 57 if (event.key == 'ArrowLeft' || event.key == 'ArrowRight' || |
| 59 event.key == 'ArrowRight' || | 58 event.key == 'ArrowUp' || event.key == 'ArrowDown') { |
| 60 event.key == 'ArrowUp' || | |
| 61 event.key == 'ArrowDown') { | |
| 62 event.stopPropagation(); | 59 event.stopPropagation(); |
| 63 event.preventDefault(); | 60 event.preventDefault(); |
| 64 } | 61 } |
| 65 }; | 62 }; |
| 66 | 63 |
| 67 /** | 64 /** |
| 68 * Handles arrow key events, depending on if self is a content script. | 65 * Handles arrow key events, depending on if self is a content script. |
| 69 * @param {!Event} event Raised event. | 66 * @param {!Event} event Raised event. |
| 70 * @private | 67 * @private |
| 71 */ | 68 */ |
| 72 keyboard.onKeyDown_ = function(event) { | 69 keyboard.onKeyDown_ = function(event) { |
| 73 event = /** @type {!KeyboardEvent} */(event); | 70 event = /** @type {!KeyboardEvent} */ (event); |
| 74 | 71 |
| 75 if (event.ctrlKey || event.shiftKey || event.altKey || event.metaKey) | 72 if (event.ctrlKey || event.shiftKey || event.altKey || event.metaKey) |
| 76 return; | 73 return; |
| 77 | 74 |
| 78 // This file also gets embedded inside of the CfM/hotrod enrollment webview. | 75 // This file also gets embedded inside of the CfM/hotrod enrollment webview. |
| 79 // Events will bubble down into the webview, which means that the event | 76 // Events will bubble down into the webview, which means that the event |
| 80 // handler from the webui will steal the events meant for the webview. So we | 77 // handler from the webui will steal the events meant for the webview. So we |
| 81 // have to disable the webui handler if the active element is the webview. | 78 // have to disable the webui handler if the active element is the webview. |
| 82 // | 79 // |
| 83 // $ is defined differently depending on how this file gets executed; we have | 80 // $ is defined differently depending on how this file gets executed; we have |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 if (event.key == 'ArrowLeft' || event.key == 'ArrowUp' || | 120 if (event.key == 'ArrowLeft' || event.key == 'ArrowUp' || |
| 124 event.key == 'ArrowRight' || event.key == 'ArrowDown') | 121 event.key == 'ArrowRight' || event.key == 'ArrowDown') |
| 125 event.stopPropagation(); | 122 event.stopPropagation(); |
| 126 }; | 123 }; |
| 127 | 124 |
| 128 /** | 125 /** |
| 129 * Initializes event handling for arrow keys driven focus flow. | 126 * Initializes event handling for arrow keys driven focus flow. |
| 130 * @param {boolean} injected true if script runs as an injected content script. | 127 * @param {boolean} injected true if script runs as an injected content script. |
| 131 */ | 128 */ |
| 132 keyboard.initializeKeyboardFlow = function(injected) { | 129 keyboard.initializeKeyboardFlow = function(injected) { |
| 133 document.addEventListener('keydown', | 130 document.addEventListener('keydown', keyboard.onKeyDown_, true); |
| 134 keyboard.onKeyDown_, true); | 131 document.addEventListener('keypress', keyboard.onKeyIgnore_, true); |
| 135 document.addEventListener('keypress', | 132 document.addEventListener('keyup', keyboard.onKeyIgnore_, true); |
| 136 keyboard.onKeyIgnore_, true); | |
| 137 document.addEventListener('keyup', | |
| 138 keyboard.onKeyIgnore_, true); | |
| 139 if (injected) | 133 if (injected) |
| 140 window.addEventListener('message', keyboard.onInitMessage_); | 134 window.addEventListener('message', keyboard.onInitMessage_); |
| 141 }; | 135 }; |
| OLD | NEW |