OLD | NEW |
---|---|
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 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
139 }, | 139 }, |
140 | 140 |
141 get currentRange() { | 141 get currentRange() { |
142 return this.currentRange_; | 142 return this.currentRange_; |
143 }, | 143 }, |
144 | 144 |
145 set currentRange(value) { | 145 set currentRange(value) { |
146 if (!value) | 146 if (!value) |
147 return; | 147 return; |
148 | 148 |
149 value.start.node.makeVisible(); | |
Peter Lundblad
2015/11/20 11:15:03
I recommend setting the value first or ignoring ex
dmazzoni
2015/11/20 23:35:14
Done.
| |
150 | |
149 this.currentRange_ = value; | 151 this.currentRange_ = value; |
150 }, | 152 }, |
151 | 153 |
152 /** | 154 /** |
153 * Handles ChromeVox Next commands. | 155 * Handles ChromeVox Next commands. |
154 * @param {string} command | 156 * @param {string} command |
155 * @param {boolean=} opt_bypassModeCheck Always tries to execute the command | 157 * @param {boolean=} opt_bypassModeCheck Always tries to execute the command |
156 * regardless of mode. | 158 * regardless of mode. |
157 * @return {boolean} True if the command should propagate. | 159 * @return {boolean} True if the command should propagate. |
158 */ | 160 */ |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
317 global.isReadingContinuously = true; | 319 global.isReadingContinuously = true; |
318 var continueReading = function(prevRange) { | 320 var continueReading = function(prevRange) { |
319 if (!global.isReadingContinuously || !this.currentRange_) | 321 if (!global.isReadingContinuously || !this.currentRange_) |
320 return; | 322 return; |
321 | 323 |
322 new Output().withSpeechAndBraille( | 324 new Output().withSpeechAndBraille( |
323 this.currentRange_, prevRange, Output.EventType.NAVIGATE) | 325 this.currentRange_, prevRange, Output.EventType.NAVIGATE) |
324 .onSpeechEnd(function() { continueReading(prevRange); }) | 326 .onSpeechEnd(function() { continueReading(prevRange); }) |
325 .go(); | 327 .go(); |
326 prevRange = this.currentRange_; | 328 prevRange = this.currentRange_; |
327 this.currentRange_ = | 329 this.currentRange = |
328 this.currentRange_.move(cursors.Unit.NODE, Dir.FORWARD); | 330 this.currentRange.move(cursors.Unit.NODE, Dir.FORWARD); |
329 | 331 |
330 if (!this.currentRange_ || this.currentRange_.equals(prevRange)) | 332 if (!this.currentRange_ || this.currentRange_.equals(prevRange)) |
331 global.isReadingContinuously = false; | 333 global.isReadingContinuously = false; |
332 }.bind(this); | 334 }.bind(this); |
333 | 335 |
334 continueReading(null); | 336 continueReading(null); |
335 return false; | 337 return false; |
336 case 'showContextMenu': | 338 case 'showContextMenu': |
337 if (this.currentRange_) { | 339 if (this.currentRange_) { |
338 var actionNode = this.currentRange_.start.node; | 340 var actionNode = this.currentRange_.start.node; |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
394 } | 396 } |
395 | 397 |
396 if (current) { | 398 if (current) { |
397 // TODO(dtseng): Figure out what it means to focus a range. | 399 // TODO(dtseng): Figure out what it means to focus a range. |
398 var actionNode = current.start.node; | 400 var actionNode = current.start.node; |
399 if (actionNode.role == RoleType.inlineTextBox) | 401 if (actionNode.role == RoleType.inlineTextBox) |
400 actionNode = actionNode.parent; | 402 actionNode = actionNode.parent; |
401 actionNode.focus(); | 403 actionNode.focus(); |
402 | 404 |
403 var prevRange = this.currentRange_; | 405 var prevRange = this.currentRange_; |
404 this.currentRange_ = current; | 406 this.currentRange = current; |
405 | 407 |
406 new Output().withSpeechAndBraille( | 408 new Output().withSpeechAndBraille( |
407 this.currentRange_, prevRange, Output.EventType.NAVIGATE) | 409 this.currentRange_, prevRange, Output.EventType.NAVIGATE) |
408 .go(); | 410 .go(); |
409 } | 411 } |
410 | 412 |
411 return false; | 413 return false; |
412 }, | 414 }, |
413 | 415 |
414 /** | 416 /** |
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
683 return glob.replace(/[.+^$(){}|[\]\\]/g, '\\$&') | 685 return glob.replace(/[.+^$(){}|[\]\\]/g, '\\$&') |
684 .replace(/\*/g, '.*') | 686 .replace(/\*/g, '.*') |
685 .replace(/\?/g, '.'); | 687 .replace(/\?/g, '.'); |
686 }).join('|') + ')$'); | 688 }).join('|') + ')$'); |
687 }; | 689 }; |
688 | 690 |
689 /** @type {Background} */ | 691 /** @type {Background} */ |
690 global.backgroundObj = new Background(); | 692 global.backgroundObj = new Background(); |
691 | 693 |
692 }); // goog.scope | 694 }); // goog.scope |
OLD | NEW |