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

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/walkers/table_walker.js

Issue 1100763002: Inject CanAddURLToHistory into TopSitesImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@prefs
Patch Set: Fix error introduced during rebase Created 5 years, 7 months 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 A class for walking tables. 6 * @fileoverview A class for walking tables.
7 * NOTE: This class has a very different interface than the other walkers. 7 * NOTE: This class has a very different interface than the other walkers.
8 * This means it does not lend itself easily to e.g. decorators. 8 * This means it does not lend itself easily to e.g. decorators.
9 * TODO (stoarca): This might be able to be fixed by breaking it up into 9 * TODO (stoarca): This might be able to be fixed by breaking it up into
10 * separate walkers for cell, row and column. 10 * separate walkers for cell, row and column.
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 cvox.TableWalker.prototype.getGranularityMsg = goog.abstractMethod; 95 cvox.TableWalker.prototype.getGranularityMsg = goog.abstractMethod;
96 96
97 97
98 /** Table Actions. */ 98 /** Table Actions. */
99 99
100 100
101 /** 101 /**
102 * Returns the first cell of the table that this selection is inside. 102 * Returns the first cell of the table that this selection is inside.
103 * @param {!cvox.CursorSelection} sel The selection. 103 * @param {!cvox.CursorSelection} sel The selection.
104 * @return {cvox.CursorSelection} The selection for first cell of the table. 104 * @return {cvox.CursorSelection} The selection for first cell of the table.
105 * @expose 105 * @export
106 */ 106 */
107 cvox.TableWalker.prototype.goToFirstCell = function(sel) { 107 cvox.TableWalker.prototype.goToFirstCell = function(sel) {
108 return this.goTo_(sel, goog.bind(function(position) { 108 return this.goTo_(sel, goog.bind(function(position) {
109 return this.tt.goToCell([0, 0]); 109 return this.tt.goToCell([0, 0]);
110 }, this)); 110 }, this));
111 }; 111 };
112 112
113 /** 113 /**
114 * Returns the last cell of the table that this selection is inside. 114 * Returns the last cell of the table that this selection is inside.
115 * @param {!cvox.CursorSelection} sel The selection. 115 * @param {!cvox.CursorSelection} sel The selection.
116 * @return {cvox.CursorSelection} The selection for the last cell of the table. 116 * @return {cvox.CursorSelection} The selection for the last cell of the table.
117 * @expose 117 * @export
118 */ 118 */
119 cvox.TableWalker.prototype.goToLastCell = function(sel) { 119 cvox.TableWalker.prototype.goToLastCell = function(sel) {
120 return this.goTo_(sel, goog.bind(function(position) { 120 return this.goTo_(sel, goog.bind(function(position) {
121 return this.tt.goToLastCell(); 121 return this.tt.goToLastCell();
122 }, this)); 122 }, this));
123 }; 123 };
124 124
125 /** 125 /**
126 * Returns the first cell of the row that the selection is in. 126 * Returns the first cell of the row that the selection is in.
127 * @param {!cvox.CursorSelection} sel The selection. 127 * @param {!cvox.CursorSelection} sel The selection.
128 * @return {cvox.CursorSelection} The selection for the first cell in the row. 128 * @return {cvox.CursorSelection} The selection for the first cell in the row.
129 * @expose 129 * @export
130 */ 130 */
131 cvox.TableWalker.prototype.goToRowFirstCell = function(sel) { 131 cvox.TableWalker.prototype.goToRowFirstCell = function(sel) {
132 return this.goTo_(sel, goog.bind(function(position) { 132 return this.goTo_(sel, goog.bind(function(position) {
133 return this.tt.goToCell([position[0], 0]); 133 return this.tt.goToCell([position[0], 0]);
134 }, this)); 134 }, this));
135 }; 135 };
136 136
137 /** 137 /**
138 * Returns the last cell of the row that the selection is in. 138 * Returns the last cell of the row that the selection is in.
139 * @param {!cvox.CursorSelection} sel The selection. 139 * @param {!cvox.CursorSelection} sel The selection.
140 * @return {cvox.CursorSelection} The selection for the last cell in the row. 140 * @return {cvox.CursorSelection} The selection for the last cell in the row.
141 * @expose 141 * @export
142 */ 142 */
143 cvox.TableWalker.prototype.goToRowLastCell = function(sel) { 143 cvox.TableWalker.prototype.goToRowLastCell = function(sel) {
144 return this.goTo_(sel, goog.bind(function(position) { 144 return this.goTo_(sel, goog.bind(function(position) {
145 return this.tt.goToRowLastCell(); 145 return this.tt.goToRowLastCell();
146 }, this)); 146 }, this));
147 }; 147 };
148 148
149 /** 149 /**
150 * Returns the first cell of the column that the selection is in. 150 * Returns the first cell of the column that the selection is in.
151 * @param {!cvox.CursorSelection} sel The selection. 151 * @param {!cvox.CursorSelection} sel The selection.
152 * @return {cvox.CursorSelection} The selection for the first cell in the col. 152 * @return {cvox.CursorSelection} The selection for the first cell in the col.
153 * @expose 153 * @export
154 */ 154 */
155 cvox.TableWalker.prototype.goToColFirstCell = function(sel) { 155 cvox.TableWalker.prototype.goToColFirstCell = function(sel) {
156 return this.goTo_(sel, goog.bind(function(position) { 156 return this.goTo_(sel, goog.bind(function(position) {
157 return this.tt.goToCell([0, position[1]]); 157 return this.tt.goToCell([0, position[1]]);
158 }, this)); 158 }, this));
159 }; 159 };
160 160
161 /** 161 /**
162 * Returns the last cell of the column that the selection is in. 162 * Returns the last cell of the column that the selection is in.
163 * @param {!cvox.CursorSelection} sel The selection. 163 * @param {!cvox.CursorSelection} sel The selection.
164 * @return {cvox.CursorSelection} The selection for the last cell in the col. 164 * @return {cvox.CursorSelection} The selection for the last cell in the col.
165 * @expose 165 * @export
166 */ 166 */
167 cvox.TableWalker.prototype.goToColLastCell = function(sel) { 167 cvox.TableWalker.prototype.goToColLastCell = function(sel) {
168 return this.goTo_(sel, goog.bind(function(position) { 168 return this.goTo_(sel, goog.bind(function(position) {
169 return this.tt.goToColLastCell(); 169 return this.tt.goToColLastCell();
170 }, this)); 170 }, this));
171 }; 171 };
172 172
173 /** 173 /**
174 * Returns the first cell in the row after the current selection. 174 * Returns the first cell in the row after the current selection.
175 * @param {!cvox.CursorSelection} sel The selection. 175 * @param {!cvox.CursorSelection} sel The selection.
176 * @return {cvox.CursorSelection} The selection for the first cell in the next 176 * @return {cvox.CursorSelection} The selection for the first cell in the next
177 * row. 177 * row.
178 * @expose 178 * @export
179 */ 179 */
180 cvox.TableWalker.prototype.nextRow = function(sel) { 180 cvox.TableWalker.prototype.nextRow = function(sel) {
181 return this.goTo_(sel, goog.bind(function(position) { 181 return this.goTo_(sel, goog.bind(function(position) {
182 return this.tt.goToCell([position[0] + (sel.isReversed() ? -1 : 1), 182 return this.tt.goToCell([position[0] + (sel.isReversed() ? -1 : 1),
183 position[1]]); 183 position[1]]);
184 }, this)); 184 }, this));
185 }; 185 };
186 186
187 /** 187 /**
188 * Returns the first cell in the column after the current selection. 188 * Returns the first cell in the column after the current selection.
189 * @param {!cvox.CursorSelection} sel The selection. 189 * @param {!cvox.CursorSelection} sel The selection.
190 * @return {cvox.CursorSelection} The selection for the first cell in the 190 * @return {cvox.CursorSelection} The selection for the first cell in the
191 * next col. 191 * next col.
192 * @expose 192 * @export
193 */ 193 */
194 cvox.TableWalker.prototype.nextCol = function(sel) { 194 cvox.TableWalker.prototype.nextCol = function(sel) {
195 return this.goTo_(sel, goog.bind(function(position) { 195 return this.goTo_(sel, goog.bind(function(position) {
196 return this.tt.goToCell([position[0], 196 return this.tt.goToCell([position[0],
197 position[1] + (sel.isReversed() ? -1 : 1)]); 197 position[1] + (sel.isReversed() ? -1 : 1)]);
198 }, this)); 198 }, this));
199 }; 199 };
200 200
201 /** 201 /**
202 * @param {!cvox.CursorSelection} sel The current selection. 202 * @param {!cvox.CursorSelection} sel The current selection.
203 * @return {cvox.CursorSelection} The resulting selection. 203 * @return {cvox.CursorSelection} The resulting selection.
204 * @expose 204 * @export
205 */ 205 */
206 cvox.TableWalker.prototype.announceHeaders = function(sel) { 206 cvox.TableWalker.prototype.announceHeaders = function(sel) {
207 cvox.ChromeVox.tts.speak(this.getHeaderText_(sel), 207 cvox.ChromeVox.tts.speak(this.getHeaderText_(sel),
208 cvox.QueueMode.FLUSH, 208 cvox.QueueMode.FLUSH,
209 cvox.AbstractTts.PERSONALITY_ANNOTATION); 209 cvox.AbstractTts.PERSONALITY_ANNOTATION);
210 return sel; 210 return sel;
211 }; 211 };
212 212
213 /** 213 /**
214 * @param {!cvox.CursorSelection} sel The current selection. 214 * @param {!cvox.CursorSelection} sel The current selection.
215 * @return {cvox.CursorSelection} The resulting selection. 215 * @return {cvox.CursorSelection} The resulting selection.
216 * @expose 216 * @export
217 */ 217 */
218 cvox.TableWalker.prototype.speakTableLocation = function(sel) { 218 cvox.TableWalker.prototype.speakTableLocation = function(sel) {
219 cvox.ChromeVox.navigationManager.speakDescriptionArray( 219 cvox.ChromeVox.navigationManager.speakDescriptionArray(
220 this.getLocationDescription_(sel), 220 this.getLocationDescription_(sel),
221 cvox.QueueMode.FLUSH, 221 cvox.QueueMode.FLUSH,
222 null); 222 null);
223 return sel; 223 return sel;
224 }; 224 };
225 225
226 226
227 /** 227 /**
228 * @param {!cvox.CursorSelection} sel The current selection. 228 * @param {!cvox.CursorSelection} sel The current selection.
229 * @return {cvox.CursorSelection} The resulting selection. 229 * @return {cvox.CursorSelection} The resulting selection.
230 * @expose 230 * @export
231 */ 231 */
232 cvox.TableWalker.prototype.exitShifterContent = function(sel) { 232 cvox.TableWalker.prototype.exitShifterContent = function(sel) {
233 var tableNode = this.getTableNode_(sel); 233 var tableNode = this.getTableNode_(sel);
234 if (!tableNode) { 234 if (!tableNode) {
235 return null; 235 return null;
236 } 236 }
237 var nextNode = cvox.DomUtil.directedNextLeafNode(tableNode, false); 237 var nextNode = cvox.DomUtil.directedNextLeafNode(tableNode, false);
238 return cvox.CursorSelection.fromNode(nextNode); 238 return cvox.CursorSelection.fromNode(nextNode);
239 }; 239 };
240 240
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 * @return {Array<number>} The position [x, y] of the selection. 413 * @return {Array<number>} The position [x, y] of the selection.
414 * @private 414 * @private
415 */ 415 */
416 cvox.TableWalker.prototype.syncPosition_ = function(sel) { 416 cvox.TableWalker.prototype.syncPosition_ = function(sel) {
417 var tableNode = this.getTableNode_(sel); 417 var tableNode = this.getTableNode_(sel);
418 this.tt.initialize(tableNode); 418 this.tt.initialize(tableNode);
419 // we need to align the TraverseTable with our sel because our walker 419 // we need to align the TraverseTable with our sel because our walker
420 // uses parts of it (for example isSpanned relies on being at a specific cell) 420 // uses parts of it (for example isSpanned relies on being at a specific cell)
421 return this.tt.findNearestCursor(sel.end.node); 421 return this.tt.findNearestCursor(sel.end.node);
422 }; 422 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698