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 var AutomationEvent = require('automationEvent').AutomationEvent; | 5 var AutomationEvent = require('automationEvent').AutomationEvent; |
6 var automationInternal = | 6 var automationInternal = |
7 require('binding').Binding.create('automationInternal').generate(); | 7 require('binding').Binding.create('automationInternal').generate(); |
8 var IsInteractPermitted = | 8 var IsInteractPermitted = |
9 requireNative('automationInternal').IsInteractPermitted; | 9 requireNative('automationInternal').IsInteractPermitted; |
10 | 10 |
11 /** | 11 /** |
12 * @param {number} axTreeID The id of the accessibility tree. | 12 * @param {number} axTreeID The id of the accessibility tree. |
13 * @return {?number} The id of the root node. | 13 * @return {?number} The id of the root node. |
14 */ | 14 */ |
15 var GetRootID = requireNative('automationInternal').GetRootID; | 15 var GetRootID = requireNative('automationInternal').GetRootID; |
16 | 16 |
17 /** | 17 /** |
18 * @param {number} axTreeID The id of the accessibility tree. | 18 * @param {number} axTreeID The id of the accessibility tree. |
| 19 * @return {?string} The title of the document. |
| 20 */ |
| 21 var GetDocTitle = requireNative('automationInternal').GetDocTitle; |
| 22 |
| 23 /** |
| 24 * @param {number} axTreeID The id of the accessibility tree. |
| 25 * @return {?string} The url of the document. |
| 26 */ |
| 27 var GetDocURL = requireNative('automationInternal').GetDocURL; |
| 28 |
| 29 /** |
| 30 * @param {number} axTreeID The id of the accessibility tree. |
| 31 * @return {?boolean} True if the document has finished loading. |
| 32 */ |
| 33 var GetDocLoaded = requireNative('automationInternal').GetDocLoaded; |
| 34 |
| 35 /** |
| 36 * @param {number} axTreeID The id of the accessibility tree. |
| 37 * @return {?number} The loading progress, from 0.0 to 1.0 (fully loaded). |
| 38 */ |
| 39 var GetDocLoadingProgress = |
| 40 requireNative('automationInternal').GetDocLoadingProgress; |
| 41 |
| 42 /** |
| 43 * @param {number} axTreeID The id of the accessibility tree. |
| 44 * @return {?number} The ID of the selection anchor object. |
| 45 */ |
| 46 var GetAnchorObjectID = requireNative('automationInternal').GetAnchorObjectID; |
| 47 |
| 48 /** |
| 49 * @param {number} axTreeID The id of the accessibility tree. |
| 50 * @return {?number} The selection anchor offset. |
| 51 */ |
| 52 var GetAnchorOffset = requireNative('automationInternal').GetAnchorOffset; |
| 53 |
| 54 /** |
| 55 * @param {number} axTreeID The id of the accessibility tree. |
| 56 * @return {?number} The ID of the selection focus object. |
| 57 */ |
| 58 var GetFocusObjectID = requireNative('automationInternal').GetFocusObjectID; |
| 59 |
| 60 /** |
| 61 * @param {number} axTreeID The id of the accessibility tree. |
| 62 * @return {?number} The selection focus offset. |
| 63 */ |
| 64 var GetFocusOffset = requireNative('automationInternal').GetFocusOffset; |
| 65 |
| 66 /** |
| 67 * @param {number} axTreeID The id of the accessibility tree. |
19 * @param {number} nodeID The id of a node. | 68 * @param {number} nodeID The id of a node. |
20 * @return {?number} The id of the node's parent, or undefined if it's the | 69 * @return {?number} The id of the node's parent, or undefined if it's the |
21 * root of its tree or if the tree or node wasn't found. | 70 * root of its tree or if the tree or node wasn't found. |
22 */ | 71 */ |
23 var GetParentID = requireNative('automationInternal').GetParentID; | 72 var GetParentID = requireNative('automationInternal').GetParentID; |
24 | 73 |
25 /** | 74 /** |
26 * @param {number} axTreeID The id of the accessibility tree. | 75 * @param {number} axTreeID The id of the accessibility tree. |
27 * @param {number} nodeID The id of a node. | 76 * @param {number} nodeID The id of a node. |
28 * @return {?number} The number of children of the node, or undefined if | 77 * @return {?number} The number of children of the node, or undefined if |
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
502 | 551 |
503 var stringAttributes = [ | 552 var stringAttributes = [ |
504 'accessKey', | 553 'accessKey', |
505 'action', | 554 'action', |
506 'ariaInvalidValue', | 555 'ariaInvalidValue', |
507 'autoComplete', | 556 'autoComplete', |
508 'containerLiveRelevant', | 557 'containerLiveRelevant', |
509 'containerLiveStatus', | 558 'containerLiveStatus', |
510 'description', | 559 'description', |
511 'display', | 560 'display', |
512 'docDoctype', | |
513 'docMimetype', | |
514 'docTitle', | |
515 'docUrl', | |
516 'dropeffect', | 561 'dropeffect', |
517 'help', | 562 'help', |
518 'htmlTag', | 563 'htmlTag', |
519 'liveRelevant', | 564 'liveRelevant', |
520 'liveStatus', | 565 'liveStatus', |
521 'name', | 566 'name', |
522 'placeholder', | 567 'placeholder', |
523 'shortcut', | 568 'shortcut', |
524 'textInputType', | 569 'textInputType', |
525 'url', | 570 'url', |
526 'value']; | 571 'value']; |
527 | 572 |
528 var boolAttributes = [ | 573 var boolAttributes = [ |
529 'ariaReadonly', | 574 'ariaReadonly', |
530 'buttonMixed', | 575 'buttonMixed', |
531 'canSetValue', | 576 'canSetValue', |
532 'canvasHasFallback', | 577 'canvasHasFallback', |
533 'containerLiveAtomic', | 578 'containerLiveAtomic', |
534 'containerLiveBusy', | 579 'containerLiveBusy', |
535 'docLoaded', | |
536 'grabbed', | 580 'grabbed', |
537 'isAxTreeHost', | 581 'isAxTreeHost', |
538 'liveAtomic', | 582 'liveAtomic', |
539 'liveBusy', | 583 'liveBusy', |
540 'updateLocationOnly']; | 584 'updateLocationOnly']; |
541 | 585 |
542 var intAttributes = [ | 586 var intAttributes = [ |
543 'anchorOffset', | |
544 'backgroundColor', | 587 'backgroundColor', |
545 'color', | 588 'color', |
546 'colorValue', | 589 'colorValue', |
547 'focusOffset', | |
548 'hierarchicalLevel', | 590 'hierarchicalLevel', |
549 'invalidState', | 591 'invalidState', |
550 'posInSet', | 592 'posInSet', |
551 'scrollX', | 593 'scrollX', |
552 'scrollXMax', | 594 'scrollXMax', |
553 'scrollXMin', | 595 'scrollXMin', |
554 'scrollY', | 596 'scrollY', |
555 'scrollYMax', | 597 'scrollYMax', |
556 'scrollYMin', | 598 'scrollYMin', |
557 'setSize', | 599 'setSize', |
558 'sortDirection', | 600 'sortDirection', |
559 'tableCellColumnIndex', | 601 'tableCellColumnIndex', |
560 'tableCellColumnSpan', | 602 'tableCellColumnSpan', |
561 'tableCellRowIndex', | 603 'tableCellRowIndex', |
562 'tableCellRowSpan', | 604 'tableCellRowSpan', |
563 'tableColumnCount', | 605 'tableColumnCount', |
564 'tableColumnIndex', | 606 'tableColumnIndex', |
565 'tableRowCount', | 607 'tableRowCount', |
566 'tableRowIndex', | 608 'tableRowIndex', |
567 'textDirection', | 609 'textDirection', |
568 'textSelEnd', | 610 'textSelEnd', |
569 'textSelStart', | 611 'textSelStart', |
570 'textStyle']; | 612 'textStyle']; |
571 | 613 |
572 var nodeRefAttributes = [ | 614 var nodeRefAttributes = [ |
573 ['activedescendantId', 'activedescendant'], | 615 ['activedescendantId', 'activedescendant'], |
574 ['anchorObjectId', 'anchorObject'], | |
575 ['focusObjectId', 'focusObject'], | |
576 ['tableColumnHeaderId', 'tableColumnHeader'], | 616 ['tableColumnHeaderId', 'tableColumnHeader'], |
577 ['tableHeaderId', 'tableHeader'], | 617 ['tableHeaderId', 'tableHeader'], |
578 ['tableRowHeaderId', 'tableRowHeader'], | 618 ['tableRowHeaderId', 'tableRowHeader'], |
579 ['titleUiElement', 'titleUIElement']]; | 619 ['titleUiElement', 'titleUIElement']]; |
580 | 620 |
581 var intListAttributes = [ | 621 var intListAttributes = [ |
582 'characterOffsets', | 622 'characterOffsets', |
583 'lineBreaks', | 623 'lineBreaks', |
584 'wordEnds', | 624 'wordEnds', |
585 'wordStarts']; | 625 'wordStarts']; |
586 | 626 |
587 var nodeRefListAttributes = [ | 627 var nodeRefListAttributes = [ |
588 ['cellIds', 'cells'], | 628 ['cellIds', 'cells'], |
589 ['controlsIds', 'controls'], | 629 ['controlsIds', 'controls'], |
590 ['describedbyIds', 'describedBy'], | 630 ['describedbyIds', 'describedBy'], |
591 ['flowtoIds', 'flowTo'], | 631 ['flowtoIds', 'flowTo'], |
592 ['labelledbyIds', 'labelledBy'], | 632 ['labelledbyIds', 'labelledBy'], |
593 ['uniqueCellIds', 'uniqueCells']]; | 633 ['uniqueCellIds', 'uniqueCells']]; |
594 | 634 |
595 var floatAttributes = [ | 635 var floatAttributes = [ |
596 'docLoadingProgress', | |
597 'valueForRange', | 636 'valueForRange', |
598 'minValueForRange', | 637 'minValueForRange', |
599 'maxValueForRange', | 638 'maxValueForRange', |
600 'fontSize']; | 639 'fontSize']; |
601 | 640 |
602 var htmlAttributes = [ | 641 var htmlAttributes = [ |
603 ['type', 'inputType']]; | 642 ['type', 'inputType']]; |
604 | 643 |
605 var publicAttributes = []; | 644 var publicAttributes = []; |
606 | 645 |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
768 var result = GetRootID(this.treeID); | 807 var result = GetRootID(this.treeID); |
769 | 808 |
770 // Don't return undefined, because the id is often passed directly | 809 // Don't return undefined, because the id is often passed directly |
771 // as an argument to a native binding that expects only a valid number. | 810 // as an argument to a native binding that expects only a valid number. |
772 if (result === undefined) | 811 if (result === undefined) |
773 return -1; | 812 return -1; |
774 | 813 |
775 return result; | 814 return result; |
776 }, | 815 }, |
777 | 816 |
| 817 get docUrl() { |
| 818 return GetDocURL(this.treeID); |
| 819 }, |
| 820 |
| 821 get docTitle() { |
| 822 return GetDocTitle(this.treeID); |
| 823 }, |
| 824 |
| 825 get docLoaded() { |
| 826 return GetDocLoaded(this.treeID); |
| 827 }, |
| 828 |
| 829 get docLoadingProgress() { |
| 830 return GetDocLoadingProgress(this.treeID); |
| 831 }, |
| 832 |
| 833 get anchorObject() { |
| 834 var id = GetAnchorObjectID(this.treeID); |
| 835 if (id && id != -1) |
| 836 return this.get(id); |
| 837 else |
| 838 return undefined; |
| 839 }, |
| 840 |
| 841 get anchorOffset() { |
| 842 var id = GetAnchorObjectID(this.treeID); |
| 843 if (id && id != -1) |
| 844 return GetAnchorOffset(this.treeID); |
| 845 }, |
| 846 |
| 847 get focusObject() { |
| 848 var id = GetFocusObjectID(this.treeID); |
| 849 if (id && id != -1) |
| 850 return this.get(id); |
| 851 else |
| 852 return undefined; |
| 853 }, |
| 854 |
| 855 get focusOffset() { |
| 856 var id = GetFocusObjectID(this.treeID); |
| 857 if (id && id != -1) |
| 858 return GetFocusOffset(this.treeID); |
| 859 }, |
| 860 |
778 get: function(id) { | 861 get: function(id) { |
779 if (id == undefined) | 862 if (id == undefined) |
780 return undefined; | 863 return undefined; |
781 | 864 |
782 if (id == this.id) | 865 if (id == this.id) |
783 return this.wrapper; | 866 return this.wrapper; |
784 | 867 |
785 var obj = this.axNodeDataCache_[id]; | 868 var obj = this.axNodeDataCache_[id]; |
786 if (obj) | 869 if (obj) |
787 return obj; | 870 return obj; |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
862 'nextSibling', | 945 'nextSibling', |
863 'isRootNode', | 946 'isRootNode', |
864 'role', | 947 'role', |
865 'state', | 948 'state', |
866 'location', | 949 'location', |
867 'indexInParent', | 950 'indexInParent', |
868 'root']) }); | 951 'root']) }); |
869 | 952 |
870 var AutomationRootNode = utils.expose('AutomationRootNode', | 953 var AutomationRootNode = utils.expose('AutomationRootNode', |
871 AutomationRootNodeImpl, | 954 AutomationRootNodeImpl, |
872 { superclass: AutomationNode }); | 955 { superclass: AutomationNode, |
| 956 readonly: ['docTitle', |
| 957 'docUrl', |
| 958 'docLoaded', |
| 959 'docLoadingProgress', |
| 960 'anchorObject', |
| 961 'anchorOffset', |
| 962 'focusObject', |
| 963 'focusOffset'] }); |
873 | 964 |
874 AutomationRootNode.get = function(treeID) { | 965 AutomationRootNode.get = function(treeID) { |
875 return AutomationRootNodeImpl.get(treeID); | 966 return AutomationRootNodeImpl.get(treeID); |
876 } | 967 } |
877 | 968 |
878 AutomationRootNode.getOrCreate = function(treeID) { | 969 AutomationRootNode.getOrCreate = function(treeID) { |
879 return AutomationRootNodeImpl.getOrCreate(treeID); | 970 return AutomationRootNodeImpl.getOrCreate(treeID); |
880 } | 971 } |
881 | 972 |
882 AutomationRootNode.destroy = function(treeID) { | 973 AutomationRootNode.destroy = function(treeID) { |
883 AutomationRootNodeImpl.destroy(treeID); | 974 AutomationRootNodeImpl.destroy(treeID); |
884 } | 975 } |
885 | 976 |
886 exports.AutomationNode = AutomationNode; | 977 exports.AutomationNode = AutomationNode; |
887 exports.AutomationRootNode = AutomationRootNode; | 978 exports.AutomationRootNode = AutomationRootNode; |
OLD | NEW |