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 /** | 6 /** |
7 * @fileoverview Uses ChromeVox API to enhance the search experience. | 7 * @fileoverview Uses ChromeVox API to enhance the search experience. |
8 */ | 8 */ |
9 | 9 |
10 goog.provide('cvox.Search'); | 10 goog.provide('cvox.Search'); |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
95 cvox.Search.isPane = false; | 95 cvox.Search.isPane = false; |
96 }; | 96 }; |
97 | 97 |
98 /** | 98 /** |
99 * Sync the search result index to ChromeVox. | 99 * Sync the search result index to ChromeVox. |
100 */ | 100 */ |
101 cvox.Search.syncToIndex = function() { | 101 cvox.Search.syncToIndex = function() { |
102 cvox.ChromeVox.tts.stop(); | 102 cvox.ChromeVox.tts.stop(); |
103 var prop = { endCallback: cvox.Search.speakSync_ }; | 103 var prop = { endCallback: cvox.Search.speakSync_ }; |
104 if (cvox.Search.index === 0) { | 104 if (cvox.Search.index === 0) { |
105 cvox.ChromeVox.tts.speak('First result', 1, prop); | 105 cvox.ChromeVox.tts.speak('First result', cvox.QueueMode.QUEUE, prop); |
106 } else if (cvox.Search.index === cvox.Search.results.length - 1) { | 106 } else if (cvox.Search.index === cvox.Search.results.length - 1) { |
107 cvox.ChromeVox.tts.speak('Last result', 1, prop); | 107 cvox.ChromeVox.tts.speak('Last result', cvox.QueueMode.QUEUE, prop); |
108 } else { | 108 } else { |
109 cvox.Search.speakSync_(); | 109 cvox.Search.speakSync_(); |
110 } | 110 } |
111 }; | 111 }; |
112 | 112 |
113 /** | 113 /** |
114 * Sync the current pane index to ChromeVox. | 114 * Sync the current pane index to ChromeVox. |
115 */ | 115 */ |
116 cvox.Search.syncPaneToIndex = function() { | 116 cvox.Search.syncPaneToIndex = function() { |
117 var pane = cvox.Search.panes[cvox.Search.paneIndex]; | 117 var pane = cvox.Search.panes[cvox.Search.paneIndex]; |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
166 var navEnds = document.getElementsByClassName(NAV_END_CLASS); | 166 var navEnds = document.getElementsByClassName(NAV_END_CLASS); |
167 var navEnd = next ? navEnds[1] : navEnds[0]; | 167 var navEnd = next ? navEnds[1] : navEnds[0]; |
168 var url = cvox.SearchUtil.extractURL(navEnd); | 168 var url = cvox.SearchUtil.extractURL(navEnd); |
169 var navToUrl = function() { | 169 var navToUrl = function() { |
170 window.location = url; | 170 window.location = url; |
171 }; | 171 }; |
172 var prop = { endCallback: navToUrl }; | 172 var prop = { endCallback: navToUrl }; |
173 if (url) { | 173 if (url) { |
174 var pageNumber = cvox.Search.getPageNumber(url); | 174 var pageNumber = cvox.Search.getPageNumber(url); |
175 if (!isNaN(pageNumber)) { | 175 if (!isNaN(pageNumber)) { |
176 cvox.ChromeVox.tts.speak('Page ' + pageNumber, 0, prop); | 176 cvox.ChromeVox.tts.speak('Page ' + pageNumber, cvox.QueueMode.FLUSH, |
177 prop); | |
177 } else { | 178 } else { |
178 cvox.ChromeVox.tts.speak('Unknown page.', 0, prop); | 179 cvox.ChromeVox.tts.speak('Unknown page.', cvox.QueueMode.FLUSH, prop); |
179 } | 180 } |
180 } | 181 } |
181 }; | 182 }; |
182 | 183 |
183 /** | 184 /** |
184 * Navigates to the currently synced pane. | 185 * Navigates to the currently synced pane. |
185 */ | 186 */ |
186 cvox.Search.goToPane = function() { | 187 cvox.Search.goToPane = function() { |
187 var pane = cvox.Search.panes[cvox.Search.paneIndex]; | 188 var pane = cvox.Search.panes[cvox.Search.paneIndex]; |
188 if (pane.className === cvox.Search.SELECTED_PANE_CLASS) { | 189 if (pane.className === cvox.Search.SELECTED_PANE_CLASS) { |
189 cvox.ChromeVox.tts.speak('You are already on that page.'); | 190 cvox.ChromeVox.tts.speak('You are already on that page.', |
191 cvox.QueueMode.QUEUE); | |
Peter Lundblad
2014/09/29 13:51:04
i18n
dmazzoni
2014/09/30 22:01:20
I'm going to skip it for anything in extensions/
| |
190 return; | 192 return; |
191 } | 193 } |
192 var anchor = pane.querySelector('a'); | 194 var anchor = pane.querySelector('a'); |
193 cvox.ChromeVox.tts.speak(anchor.textContent); | 195 cvox.ChromeVox.tts.speak(anchor.textContent, cvox.QueueMode.QUEUE); |
194 var url = cvox.SearchUtil.extractURL(pane); | 196 var url = cvox.SearchUtil.extractURL(pane); |
195 if (url) { | 197 if (url) { |
196 window.location = url; | 198 window.location = url; |
197 } | 199 } |
198 }; | 200 }; |
199 | 201 |
200 /** | 202 /** |
201 * Follow the link to the current result. | 203 * Follow the link to the current result. |
202 */ | 204 */ |
203 cvox.Search.goToResult = function() { | 205 cvox.Search.goToResult = function() { |
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
430 return; | 432 return; |
431 } | 433 } |
432 | 434 |
433 cvox.Search.populateResults(); | 435 cvox.Search.populateResults(); |
434 cvox.Search.populatePanes(); | 436 cvox.Search.populatePanes(); |
435 cvox.Search.paneIndex = cvox.Search.getSelectedPaneIndex(); | 437 cvox.Search.paneIndex = cvox.Search.getSelectedPaneIndex(); |
436 | 438 |
437 cvox.Search.initialSync(); | 439 cvox.Search.initialSync(); |
438 | 440 |
439 }; | 441 }; |
OLD | NEW |