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

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js

Issue 1636243002: Eat all keys involving Search when ChromeVox is on and add a pass through mode command. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Track key up. Created 4 years, 10 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/resources/chromeos/chromevox/chromevox/background/keymaps/next_keymap.json ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 * @fileoverview The entry point for all ChromeVox2 related code for the 6 * @fileoverview The entry point for all ChromeVox2 related code for the
7 * background page. 7 * background page.
8 */ 8 */
9 9
10 goog.provide('Background'); 10 goog.provide('Background');
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 return localStorage['active'] !== 'false'; 109 return localStorage['active'] !== 'false';
110 }, 110 },
111 set: function(value) { 111 set: function(value) {
112 localStorage['active'] = value; 112 localStorage['active'] = value;
113 } 113 }
114 }); 114 });
115 115
116 cvox.ExtensionBridge.addMessageListener(this.onMessage_); 116 cvox.ExtensionBridge.addMessageListener(this.onMessage_);
117 117
118 document.addEventListener('keydown', this.onKeyDown.bind(this), true); 118 document.addEventListener('keydown', this.onKeyDown.bind(this), true);
119 document.addEventListener('keyup', this.onKeyUp.bind(this), true);
119 cvox.ChromeVoxKbHandler.commandHandler = this.onGotCommand.bind(this); 120 cvox.ChromeVoxKbHandler.commandHandler = this.onGotCommand.bind(this);
120 121
121 // Classic keymap. 122 // Classic keymap.
122 cvox.ChromeVoxKbHandler.handlerKeyMap = cvox.KeyMap.fromDefaults(); 123 cvox.ChromeVoxKbHandler.handlerKeyMap = cvox.KeyMap.fromDefaults();
123 124
124 // Live region handler. 125 // Live region handler.
125 this.liveRegions_ = new LiveRegions(this); 126 this.liveRegions_ = new LiveRegions(this);
126 127
128 /** @type {number} @private */
129 this.passThroughKeyUpCount_ = 0;
130
127 if (!chrome.accessibilityPrivate.setKeyboardListener) 131 if (!chrome.accessibilityPrivate.setKeyboardListener)
128 chrome.accessibilityPrivate.setKeyboardListener = function() {}; 132 chrome.accessibilityPrivate.setKeyboardListener = function() {};
129 }; 133 };
130 134
131 Background.prototype = { 135 Background.prototype = {
132 __proto__: ChromeVoxState.prototype, 136 __proto__: ChromeVoxState.prototype,
133 137
134 /** 138 /**
135 * @override 139 * @override
136 */ 140 */
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 case 'toggleStickyMode': 473 case 'toggleStickyMode':
470 cvox.ChromeVoxBackground.setPref('sticky', 474 cvox.ChromeVoxBackground.setPref('sticky',
471 !cvox.ChromeVox.isStickyPrefOn, 475 !cvox.ChromeVox.isStickyPrefOn,
472 true); 476 true);
473 477
474 if (cvox.ChromeVox.isStickyPrefOn) 478 if (cvox.ChromeVox.isStickyPrefOn)
475 chrome.accessibilityPrivate.setKeyboardListener(true, true); 479 chrome.accessibilityPrivate.setKeyboardListener(true, true);
476 else 480 else
477 chrome.accessibilityPrivate.setKeyboardListener(true, false); 481 chrome.accessibilityPrivate.setKeyboardListener(true, false);
478 return false; 482 return false;
483 case 'passThroughMode':
484 cvox.ChromeVox.passThroughMode = true;
485 cvox.ChromeVox.tts.speak(
486 Msgs.getMsg('pass_through_key'), cvox.QueueMode.QUEUE);
487 return true;
479 default: 488 default:
480 return true; 489 return true;
481 } 490 }
482 491
483 if (pred) { 492 if (pred) {
484 var node = AutomationUtil.findNextNode( 493 var node = AutomationUtil.findNextNode(
485 current.getBound(dir).node, dir, pred); 494 current.getBound(dir).node, dir, pred);
486 495
487 if (node) { 496 if (node) {
488 current = cursors.Range.fromNode(node); 497 current = cursors.Range.fromNode(node);
(...skipping 29 matching lines...) Expand all
518 return false; 527 return false;
519 }, 528 },
520 529
521 /** 530 /**
522 * Handles key down events. 531 * Handles key down events.
523 * @param {Event} evt The key down event to process. 532 * @param {Event} evt The key down event to process.
524 * @return {boolean} True if the default action should be performed. 533 * @return {boolean} True if the default action should be performed.
525 */ 534 */
526 onKeyDown: function(evt) { 535 onKeyDown: function(evt) {
527 evt.stickyMode = cvox.ChromeVox.isStickyModeOn() && cvox.ChromeVox.isActive; 536 evt.stickyMode = cvox.ChromeVox.isStickyModeOn() && cvox.ChromeVox.isActive;
537 if (cvox.ChromeVox.passThroughMode)
538 return false;
539
528 if (this.mode_ != ChromeVoxMode.CLASSIC && 540 if (this.mode_ != ChromeVoxMode.CLASSIC &&
529 !cvox.ChromeVoxKbHandler.basicKeyDownActionsListener(evt)) { 541 !cvox.ChromeVoxKbHandler.basicKeyDownActionsListener(evt)) {
530 evt.preventDefault(); 542 evt.preventDefault();
531 evt.stopPropagation(); 543 evt.stopPropagation();
532 } 544 }
545 Output.flushNextSpeechUtterance();
546 },
533 547
534 Output.flushNextSpeechUtterance(); 548 /**
549 * Handles key up events.
550 * @param {Event} evt The key down event to process.
551 * @return {boolean} True if the default action should be performed.
552 */
553 onKeyUp: function(evt) {
554 // Reset pass through mode once a keyup (not involving the pass through key)
555 // is seen. The pass through command involves three keys.
556 if (cvox.ChromeVox.passThroughMode) {
557 if (this.passThroughKeyUpCount_ >= 3) {
558 cvox.ChromeVox.passThroughMode = false;
559 this.passThroughKeyUpCount_ = 0;
560 } else {
561 this.passThroughKeyUpCount_++;
562 }
563 }
535 }, 564 },
536 565
537 /** 566 /**
538 * Open the options page in a new tab. 567 * Open the options page in a new tab.
539 */ 568 */
540 showOptionsPage: function() { 569 showOptionsPage: function() {
541 var optionsPage = {url: 'chromevox/background/options.html'}; 570 var optionsPage = {url: 'chromevox/background/options.html'};
542 chrome.tabs.create(optionsPage); 571 chrome.tabs.create(optionsPage);
543 }, 572 },
544 573
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
695 return glob.replace(/[.+^$(){}|[\]\\]/g, '\\$&') 724 return glob.replace(/[.+^$(){}|[\]\\]/g, '\\$&')
696 .replace(/\*/g, '.*') 725 .replace(/\*/g, '.*')
697 .replace(/\?/g, '.'); 726 .replace(/\?/g, '.');
698 }).join('|') + ')$'); 727 }).join('|') + ')$');
699 }; 728 };
700 729
701 /** @type {Background} */ 730 /** @type {Background} */
702 global.backgroundObj = new Background(); 731 global.backgroundObj = new Background();
703 732
704 }); // goog.scope 733 }); // goog.scope
OLDNEW
« no previous file with comments | « chrome/browser/resources/chromeos/chromevox/chromevox/background/keymaps/next_keymap.json ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698