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

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

Issue 1458723002: Finish implementing ChromeVox Next active indicator. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@load_key_map
Patch Set: Made test expectations approximate Created 5 years, 1 month 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
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 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 /** @type {cursors.Range} */ 142 /** @type {cursors.Range} */
143 get currentRange() { 143 get currentRange() {
144 return this.currentRange_; 144 return this.currentRange_;
145 }, 145 },
146 146
147 set currentRange(value) { 147 set currentRange(value) {
148 if (!value) 148 if (!value)
149 return; 149 return;
150 150
151 this.currentRange_ = value; 151 this.currentRange_ = value;
152
153 if (this.currentRange_)
154 this.currentRange_.start.node.makeVisible();
152 }, 155 },
153 156
154 /** 157 /**
155 * Handles ChromeVox Next commands. 158 * Handles ChromeVox Next commands.
156 * @param {string} command 159 * @param {string} command
157 * @param {boolean=} opt_bypassModeCheck Always tries to execute the command 160 * @param {boolean=} opt_bypassModeCheck Always tries to execute the command
158 * regardless of mode. 161 * regardless of mode.
159 * @return {boolean} True if the command should propagate. 162 * @return {boolean} True if the command should propagate.
160 */ 163 */
161 onGotCommand: function(command, opt_bypassModeCheck) { 164 onGotCommand: function(command, opt_bypassModeCheck) {
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 global.isReadingContinuously = true; 322 global.isReadingContinuously = true;
320 var continueReading = function(prevRange) { 323 var continueReading = function(prevRange) {
321 if (!global.isReadingContinuously || !this.currentRange_) 324 if (!global.isReadingContinuously || !this.currentRange_)
322 return; 325 return;
323 326
324 new Output().withSpeechAndBraille( 327 new Output().withSpeechAndBraille(
325 this.currentRange_, prevRange, Output.EventType.NAVIGATE) 328 this.currentRange_, prevRange, Output.EventType.NAVIGATE)
326 .onSpeechEnd(function() { continueReading(prevRange); }) 329 .onSpeechEnd(function() { continueReading(prevRange); })
327 .go(); 330 .go();
328 prevRange = this.currentRange_; 331 prevRange = this.currentRange_;
329 this.currentRange_ = 332 this.currentRange =
330 this.currentRange_.move(cursors.Unit.NODE, Dir.FORWARD); 333 this.currentRange.move(cursors.Unit.NODE, Dir.FORWARD);
331 334
332 if (!this.currentRange_ || this.currentRange_.equals(prevRange)) 335 if (!this.currentRange_ || this.currentRange_.equals(prevRange))
333 global.isReadingContinuously = false; 336 global.isReadingContinuously = false;
334 }.bind(this); 337 }.bind(this);
335 338
336 continueReading(null); 339 continueReading(null);
337 return false; 340 return false;
338 case 'showContextMenu': 341 case 'showContextMenu':
339 if (this.currentRange_) { 342 if (this.currentRange_) {
340 var actionNode = this.currentRange_.start.node; 343 var actionNode = this.currentRange_.start.node;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
396 } 399 }
397 400
398 if (current) { 401 if (current) {
399 // TODO(dtseng): Figure out what it means to focus a range. 402 // TODO(dtseng): Figure out what it means to focus a range.
400 var actionNode = current.start.node; 403 var actionNode = current.start.node;
401 if (actionNode.role == RoleType.inlineTextBox) 404 if (actionNode.role == RoleType.inlineTextBox)
402 actionNode = actionNode.parent; 405 actionNode = actionNode.parent;
403 actionNode.focus(); 406 actionNode.focus();
404 407
405 var prevRange = this.currentRange_; 408 var prevRange = this.currentRange_;
406 this.currentRange_ = current; 409 this.currentRange = current;
407 410
408 new Output().withSpeechAndBraille( 411 new Output().withSpeechAndBraille(
409 this.currentRange_, prevRange, Output.EventType.NAVIGATE) 412 this.currentRange_, prevRange, Output.EventType.NAVIGATE)
410 .go(); 413 .go();
411 } 414 }
412 415
413 return false; 416 return false;
414 }, 417 },
415 418
416 /** 419 /**
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 return glob.replace(/[.+^$(){}|[\]\\]/g, '\\$&') 689 return glob.replace(/[.+^$(){}|[\]\\]/g, '\\$&')
687 .replace(/\*/g, '.*') 690 .replace(/\*/g, '.*')
688 .replace(/\?/g, '.'); 691 .replace(/\?/g, '.');
689 }).join('|') + ')$'); 692 }).join('|') + ')$');
690 }; 693 };
691 694
692 /** @type {Background} */ 695 /** @type {Background} */
693 global.backgroundObj = new Background(); 696 global.backgroundObj = new Background();
694 697
695 }); // goog.scope 698 }); // goog.scope
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698