OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 ChromeVox commands. | 6 * @fileoverview ChromeVox commands. |
7 */ | 7 */ |
8 | 8 |
9 goog.provide('CommandHandler'); | 9 goog.provide('CommandHandler'); |
10 | 10 |
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 if (node) | 449 if (node) |
450 current = cursors.Range.fromNode(node); | 450 current = cursors.Range.fromNode(node); |
451 break; | 451 break; |
452 case 'jumpToBottom': | 452 case 'jumpToBottom': |
453 var node = AutomationUtil.findNodePost( | 453 var node = AutomationUtil.findNodePost( |
454 current.start.node.root, Dir.BACKWARD, AutomationPredicate.leaf); | 454 current.start.node.root, Dir.BACKWARD, AutomationPredicate.leaf); |
455 if (node) | 455 if (node) |
456 current = cursors.Range.fromNode(node); | 456 current = cursors.Range.fromNode(node); |
457 break; | 457 break; |
458 case 'forceClickOnCurrentItem': | 458 case 'forceClickOnCurrentItem': |
459 if (ChromeVoxState.instance.currentRange_) { | 459 if (ChromeVoxState.instance.currentRange) { |
460 var actionNode = ChromeVoxState.instance.currentRange_.start.node; | 460 var actionNode = ChromeVoxState.instance.currentRange.start.node; |
461 if (actionNode.role == RoleType.INLINE_TEXT_BOX) | 461 while (actionNode.role == RoleType.INLINE_TEXT_BOX || |
| 462 actionNode.role == RoleType.STATIC_TEXT) |
462 actionNode = actionNode.parent; | 463 actionNode = actionNode.parent; |
463 actionNode.doDefault(); | 464 if (actionNode.inPageLinkTarget) { |
| 465 ChromeVoxState.instance.navigateToRange( |
| 466 cursors.Range.fromNode(actionNode.inPageLinkTarget)); |
| 467 } else { |
| 468 actionNode.doDefault(); |
| 469 } |
464 } | 470 } |
465 // Skip all other processing; if focus changes, we should get an event | 471 // Skip all other processing; if focus changes, we should get an event |
466 // for that. | 472 // for that. |
467 return false; | 473 return false; |
468 case 'readFromHere': | 474 case 'readFromHere': |
469 ChromeVoxState.isReadingContinuously = true; | 475 ChromeVoxState.isReadingContinuously = true; |
470 var continueReading = function() { | 476 var continueReading = function() { |
471 if (!ChromeVoxState.isReadingContinuously || | 477 if (!ChromeVoxState.isReadingContinuously || |
472 !ChromeVoxState.instance.currentRange_) | 478 !ChromeVoxState.instance.currentRange_) |
473 return; | 479 return; |
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
848 if (imageNode.imageDataUrl) { | 854 if (imageNode.imageDataUrl) { |
849 var event = new CustomAutomationEvent( | 855 var event = new CustomAutomationEvent( |
850 EventType.IMAGE_FRAME_UPDATED, imageNode, 'page'); | 856 EventType.IMAGE_FRAME_UPDATED, imageNode, 'page'); |
851 CommandHandler.onImageFrameUpdated_(event); | 857 CommandHandler.onImageFrameUpdated_(event); |
852 } else { | 858 } else { |
853 imageNode.getImageData(0, 0); | 859 imageNode.getImageData(0, 0); |
854 } | 860 } |
855 }; | 861 }; |
856 | 862 |
857 }); // goog.scope | 863 }); // goog.scope |
OLD | NEW |