| Index: remoting/tools/javascript_key_tester/main.js
|
| diff --git a/remoting/tools/javascript_key_tester/main.js b/remoting/tools/javascript_key_tester/main.js
|
| index e37e4265262ef9b8430a62aee9439d985c9ca01c..1dc8bbeed3434444230d7791af3a834cee1e0a46 100644
|
| --- a/remoting/tools/javascript_key_tester/main.js
|
| +++ b/remoting/tools/javascript_key_tester/main.js
|
| @@ -3,140 +3,44 @@
|
| * found in the LICENSE file.
|
| */
|
|
|
| -/**
|
| - * @param {string} eventName
|
| - * @param {number=} opt_space
|
| - * @return {string}
|
| - */
|
| -function jsonifyJavascriptKeyEvent(event, eventName, opt_space) {
|
| - return "JavaScript '" + eventName + "' event = " + JSON.stringify(
|
| - event,
|
| - ['type', 'alt', 'shift', 'control', 'meta', 'charCode', 'keyCode',
|
| - 'keyIdentifier', 'repeat'],
|
| - opt_space);
|
| -};
|
| -
|
| -/**
|
| - * @param {ChordTracker} jsChordTracker
|
| - * @param {Event} event
|
| - * @return {void}
|
| - */
|
| -function handleJavascriptKeyDownEvent(jsChordTracker, event) {
|
| - appendToTextLog(jsonifyJavascriptKeyEvent(event, 'keydown', undefined));
|
| - jsChordTracker.addKeyDownEvent(
|
| - event.keyCode, jsonifyJavascriptKeyEvent(event, 'keydown', 2));
|
| -}
|
| -
|
| -/**
|
| - * @param {ChordTracker} jsChordTracker
|
| - * @param {Event} event
|
| - * @return {void}
|
| - */
|
| -function handleJavascriptKeyUpEvent(jsChordTracker, event) {
|
| - appendToTextLog(jsonifyJavascriptKeyEvent(event, 'keyup', undefined));
|
| - jsChordTracker.addKeyUpEvent(
|
| - event.keyCode, jsonifyJavascriptKeyEvent(event, 'keyup', 2));
|
| -}
|
| -
|
| -/** @constructor */
|
| -var PNaClEvent = function() {
|
| - /** @type {string} */
|
| - this.type = "";
|
| - /** @type {number} */
|
| - this.modifiers = 0;
|
| - /** @type {number} */
|
| - this.keyCode = 0;
|
| - /** @type {string|undefined} */
|
| - this.characterText = undefined;
|
| - /** @type {string} */
|
| - this.code = "";
|
| -};
|
| -
|
| -/**
|
| - * @param {PNaClEvent} event
|
| - * @param {number|undefined} space
|
| - * @return {string}
|
| - */
|
| -function jsonifyPnaclKeyboardInputEvent(event, space) {
|
| - return "PNaCl KeyboardInputEvent = " + JSON.stringify(
|
| - event,
|
| - ['type', 'modifiers', 'keyCode', 'characterText', 'code'],
|
| - space);
|
| -};
|
| -
|
| -/**
|
| - * @param {ChordTracker} pnaclChordTracker
|
| - * @param {Event} event
|
| - * @return {void}
|
| - */
|
| -function handlePNaclMessage(pnaclChordTracker, event) {
|
| - var pnaclEvent = /** @type {PNaClEvent} */ (event.data);
|
| -
|
| - appendToTextLog(jsonifyPnaclKeyboardInputEvent(pnaclEvent, undefined));
|
| - var title = jsonifyPnaclKeyboardInputEvent(pnaclEvent, 2);
|
| - if (pnaclEvent.type == "KEYDOWN") {
|
| - pnaclChordTracker.addKeyDownEvent(pnaclEvent.keyCode, title);
|
| - }
|
| - if (pnaclEvent.type == "KEYUP") {
|
| - pnaclChordTracker.addKeyUpEvent(pnaclEvent.keyCode, title);
|
| - }
|
| - if (pnaclEvent.type == "CHAR") {
|
| - pnaclChordTracker.addCharEvent(pnaclEvent.characterText, title);
|
| - }
|
| -}
|
| -
|
| -/**
|
| - * @param {string} str
|
| - * @return {void}
|
| - */
|
| -function appendToTextLog(str) {
|
| - var textLog = document.getElementById('text-log');
|
| - var div = document.createElement('div');
|
| - div.innerText = str;
|
| - textLog.appendChild(div);
|
| -}
|
| -
|
| function onLoad() {
|
| - // Start listening to Javascript keyup/keydown events.
|
| var jsLog = document.getElementById('javascript-log');
|
| - var jsChordTracker = new ChordTracker(jsLog);
|
| - document.body.addEventListener(
|
| - 'keydown',
|
| - function (event) {
|
| - handleJavascriptKeyDownEvent(jsChordTracker, event);
|
| - },
|
| - false);
|
| - document.body.addEventListener(
|
| - 'keyup',
|
| - function (event) {
|
| - handleJavascriptKeyUpEvent(jsChordTracker, event);
|
| - },
|
| - false);
|
| -
|
| - // Start listening to PNaCl keyboard input events.
|
| var pnaclLog = document.getElementById('pnacl-log');
|
| - var pnaclChordTracker = new ChordTracker(pnaclLog);
|
| - document.getElementById('pnacl-listener').addEventListener(
|
| - 'message',
|
| - function (message) {
|
| - handlePNaclMessage(pnaclChordTracker, message);
|
| - },
|
| - true);
|
| + var pnaclPlugin = document.getElementById('pnacl-plugin');
|
| + var pnaclListener = document.getElementById('pnacl-listener');
|
| + var textLog = document.getElementById('text-log');
|
| + var textLogContainer = document.getElementById('text-log-container');
|
| +
|
| + var eventListeners = new EventListeners(jsLog, pnaclLog, textLog,
|
| + pnaclPlugin, pnaclListener);
|
| + eventListeners.activate();
|
|
|
| - // Start listening to generic, source-agnostic events.
|
| - window.addEventListener(
|
| - 'blur',
|
| - function () {
|
| - jsChordTracker.releaseAllKeys();
|
| - pnaclChordTracker.releaseAllKeys();
|
| - },
|
| - false);
|
| document.getElementById('clear-log').addEventListener(
|
| 'click',
|
| function() {
|
| jsLog.innerText = '';
|
| pnaclLog.innerText = '';
|
| - document.getElementById('text-log').innerText = '';
|
| + textLog.innerText = '';
|
| + },
|
| + false);
|
| + document.getElementById('show-log').addEventListener(
|
| + 'click',
|
| + function() {
|
| + eventListeners.deactivate();
|
| + textLogContainer.hidden = false;
|
| +
|
| + var selection = window.getSelection();
|
| + var range = document.createRange();
|
| + range.selectNodeContents(textLog);
|
| + selection.removeAllRanges();
|
| + selection.addRange(range);
|
| + },
|
| + false);
|
| + document.getElementById('hide-log').addEventListener(
|
| + 'click',
|
| + function() {
|
| + eventListeners.activate();
|
| + textLogContainer.hidden = true;
|
| },
|
| false);
|
| }
|
|
|