| 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 Provides output services for ChromeVox. | 6 * @fileoverview Provides output services for ChromeVox. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 goog.provide('Output'); | 9 goog.provide('Output'); |
| 10 goog.provide('Output.EventType'); | 10 goog.provide('Output.EventType'); |
| (...skipping 971 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 982 | 982 |
| 983 /** | 983 /** |
| 984 * @param {!cursors.Range} range | 984 * @param {!cursors.Range} range |
| 985 * @param {cursors.Range} prevRange | 985 * @param {cursors.Range} prevRange |
| 986 * @param {chrome.automation.EventType|string} type | 986 * @param {chrome.automation.EventType|string} type |
| 987 * @param {!Array<cvox.Spannable>} rangeBuff | 987 * @param {!Array<cvox.Spannable>} rangeBuff |
| 988 * @private | 988 * @private |
| 989 */ | 989 */ |
| 990 range_: function(range, prevRange, type, rangeBuff) { | 990 range_: function(range, prevRange, type, rangeBuff) { |
| 991 if (!prevRange) | 991 if (!prevRange) |
| 992 prevRange = cursors.Range.fromNode(range.getStart().getNode().root); | 992 prevRange = cursors.Range.fromNode(range.start.node.root); |
| 993 | 993 |
| 994 var cursor = range.getStart(); | 994 var cursor = range.start; |
| 995 var prevNode = prevRange.getStart().getNode(); | 995 var prevNode = prevRange.start.node; |
| 996 | 996 |
| 997 var formatNodeAndAncestors = function(node, prevNode) { | 997 var formatNodeAndAncestors = function(node, prevNode) { |
| 998 var buff = []; | 998 var buff = []; |
| 999 this.ancestry_(node, prevNode, type, buff); | 999 this.ancestry_(node, prevNode, type, buff); |
| 1000 this.node_(node, prevNode, type, buff); | 1000 this.node_(node, prevNode, type, buff); |
| 1001 if (this.formatOptions_.location) | 1001 if (this.formatOptions_.location) |
| 1002 this.locations_.push(node.location); | 1002 this.locations_.push(node.location); |
| 1003 return buff; | 1003 return buff; |
| 1004 }.bind(this); | 1004 }.bind(this); |
| 1005 | 1005 |
| 1006 while (cursor.getNode() != range.getEnd().getNode()) { | 1006 while (cursor.node != range.end.node) { |
| 1007 var node = cursor.getNode(); | 1007 var node = cursor.node; |
| 1008 rangeBuff.push.apply(rangeBuff, formatNodeAndAncestors(node, prevNode)); | 1008 rangeBuff.push.apply(rangeBuff, formatNodeAndAncestors(node, prevNode)); |
| 1009 prevNode = node; | 1009 prevNode = node; |
| 1010 cursor = cursor.move(cursors.Unit.NODE, | 1010 cursor = cursor.move(cursors.Unit.NODE, |
| 1011 cursors.Movement.DIRECTIONAL, | 1011 cursors.Movement.DIRECTIONAL, |
| 1012 Dir.FORWARD); | 1012 Dir.FORWARD); |
| 1013 | 1013 |
| 1014 // Reached a boundary. | 1014 // Reached a boundary. |
| 1015 if (cursor.getNode() == prevNode) | 1015 if (cursor.node == prevNode) |
| 1016 break; | 1016 break; |
| 1017 } | 1017 } |
| 1018 var lastNode = range.getEnd().getNode(); | 1018 var lastNode = range.end.node; |
| 1019 rangeBuff.push.apply(rangeBuff, formatNodeAndAncestors(lastNode, prevNode)); | 1019 rangeBuff.push.apply(rangeBuff, formatNodeAndAncestors(lastNode, prevNode)); |
| 1020 }, | 1020 }, |
| 1021 | 1021 |
| 1022 /** | 1022 /** |
| 1023 * @param {!chrome.automation.AutomationNode} node | 1023 * @param {!chrome.automation.AutomationNode} node |
| 1024 * @param {!chrome.automation.AutomationNode} prevNode | 1024 * @param {!chrome.automation.AutomationNode} prevNode |
| 1025 * @param {chrome.automation.EventType|string} type | 1025 * @param {chrome.automation.EventType|string} type |
| 1026 * @param {!Array<cvox.Spannable>} buff | 1026 * @param {!Array<cvox.Spannable>} buff |
| 1027 * @param {!Object=} opt_exclude A list of attributes to exclude from | 1027 * @param {!Object=} opt_exclude A list of attributes to exclude from |
| 1028 * processing. | 1028 * processing. |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1110 * @param {!cursors.Range} range | 1110 * @param {!cursors.Range} range |
| 1111 * @param {cursors.Range} prevRange | 1111 * @param {cursors.Range} prevRange |
| 1112 * @param {chrome.automation.EventType|string} type | 1112 * @param {chrome.automation.EventType|string} type |
| 1113 * @param {!Array<cvox.Spannable>} buff | 1113 * @param {!Array<cvox.Spannable>} buff |
| 1114 * @private | 1114 * @private |
| 1115 */ | 1115 */ |
| 1116 subNode_: function(range, prevRange, type, buff) { | 1116 subNode_: function(range, prevRange, type, buff) { |
| 1117 if (!prevRange) | 1117 if (!prevRange) |
| 1118 prevRange = range; | 1118 prevRange = range; |
| 1119 var dir = cursors.Range.getDirection(prevRange, range); | 1119 var dir = cursors.Range.getDirection(prevRange, range); |
| 1120 var prevNode = prevRange.getBound(dir).getNode(); | 1120 var prevNode = prevRange.getBound(dir).node; |
| 1121 this.ancestry_( | 1121 this.ancestry_( |
| 1122 range.getStart().getNode(), prevNode, type, buff, | 1122 range.start.node, prevNode, type, buff, |
| 1123 {stay: true, name: true, value: true}); | 1123 {stay: true, name: true, value: true}); |
| 1124 var startIndex = range.getStart().getIndex(); | 1124 var startIndex = range.start.getIndex(); |
| 1125 var endIndex = range.getEnd().getIndex(); | 1125 var endIndex = range.end.getIndex(); |
| 1126 if (startIndex === endIndex) | 1126 if (startIndex === endIndex) |
| 1127 endIndex++; | 1127 endIndex++; |
| 1128 this.append_( | 1128 this.append_( |
| 1129 buff, range.getStart().getText().substring(startIndex, endIndex)); | 1129 buff, range.start.getText().substring(startIndex, endIndex)); |
| 1130 }, | 1130 }, |
| 1131 | 1131 |
| 1132 /** | 1132 /** |
| 1133 * Appends output to the |buff|. | 1133 * Appends output to the |buff|. |
| 1134 * @param {!Array<cvox.Spannable>} buff | 1134 * @param {!Array<cvox.Spannable>} buff |
| 1135 * @param {string|!cvox.Spannable} value | 1135 * @param {string|!cvox.Spannable} value |
| 1136 * @param {{isUnique: (boolean|undefined), | 1136 * @param {{isUnique: (boolean|undefined), |
| 1137 * annotation: !Array<*>}=} opt_options | 1137 * annotation: !Array<*>}=} opt_options |
| 1138 */ | 1138 */ |
| 1139 append_: function(buff, value, opt_options) { | 1139 append_: function(buff, value, opt_options) { |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1202 } | 1202 } |
| 1203 | 1203 |
| 1204 if (currentNode != root) | 1204 if (currentNode != root) |
| 1205 throw 'Unbalanced parenthesis.'; | 1205 throw 'Unbalanced parenthesis.'; |
| 1206 | 1206 |
| 1207 return root; | 1207 return root; |
| 1208 } | 1208 } |
| 1209 }; | 1209 }; |
| 1210 | 1210 |
| 1211 }); // goog.scope | 1211 }); // goog.scope |
| OLD | NEW |