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

Side by Side Diff: chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js

Issue 2495373005: Record ChromeVox metrics (Closed)
Patch Set: Record once on startup, and add externs Created 4 years, 1 month 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 The entry point for all ChromeVox2 related code for the 6 * @fileoverview The entry point for all ChromeVox2 related code for the
7 * background page. 7 * background page.
8 */ 8 */
9 9
10 goog.provide('Background'); 10 goog.provide('Background');
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 chrome.accessibilityPrivate.onAccessibilityGesture.addListener( 168 chrome.accessibilityPrivate.onAccessibilityGesture.addListener(
169 this.onAccessibilityGesture_); 169 this.onAccessibilityGesture_);
170 170
171 /** 171 /**
172 * Maps a non-desktop root automation node to a range position suitable for 172 * Maps a non-desktop root automation node to a range position suitable for
173 * restoration. 173 * restoration.
174 * @type {WeakMap<AutomationNode, cursors.Range>} 174 * @type {WeakMap<AutomationNode, cursors.Range>}
175 * @private 175 * @private
176 */ 176 */
177 this.focusRecoveryMap_ = new WeakMap(); 177 this.focusRecoveryMap_ = new WeakMap();
178
179 // Record a metric with the mode we're in on startup.
180 var useNext = localStorage['useNext'] !== 'false';
181 chrome.metricsPrivate.recordValue(
182 { metricName: 'Accessibility.CrosChromeVoxNext',
183 type: chrome.metricsPrivate.MetricTypeType.HISTOGRAM_LINEAR,
184 min: 1, // According to histogram.h, this should be 1 for enums.
185 max: 2, // Maximum should be exclusive.
186 buckets: 3 }, // Number of buckets: 0, 1 and overflowing 2.
187 useNext ? 1 : 0);
178 }; 188 };
179 189
180 /** 190 /**
181 * Map from gesture names (AXGesture defined in ui/accessibility/ax_enums.idl) 191 * Map from gesture names (AXGesture defined in ui/accessibility/ax_enums.idl)
182 * to commands when in Classic mode. 192 * to commands when in Classic mode.
183 * @type {Object<string, string>} 193 * @type {Object<string, string>}
184 * @const 194 * @const
185 */ 195 */
186 Background.GESTURE_CLASSIC_COMMAND_MAP = { 196 Background.GESTURE_CLASSIC_COMMAND_MAP = {
187 'click': 'forceClickOnCurrentItem', 197 'click': 'forceClickOnCurrentItem',
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 * classic/compat (false). 352 * classic/compat (false).
343 * @return {boolean} True to announce current position. 353 * @return {boolean} True to announce current position.
344 */ 354 */
345 toggleNext: function(opt_setValue) { 355 toggleNext: function(opt_setValue) {
346 var useNext; 356 var useNext;
347 if (opt_setValue !== undefined) 357 if (opt_setValue !== undefined)
348 useNext = opt_setValue; 358 useNext = opt_setValue;
349 else 359 else
350 useNext = localStorage['useNext'] !== 'true'; 360 useNext = localStorage['useNext'] !== 'true';
351 361
362 if (useNext) {
363 chrome.metricsPrivate.recordUserAction('ChromeVox.ToggleNextOn');
364 } else {
365 chrome.metricsPrivate.recordUserAction('ChromeVox.ToggleNextOff');
366 }
367
352 localStorage['useNext'] = useNext; 368 localStorage['useNext'] = useNext;
353 if (useNext) 369 if (useNext)
354 this.setCurrentRangeToFocus_(); 370 this.setCurrentRangeToFocus_();
355 else 371 else
356 this.setCurrentRange(null); 372 this.setCurrentRange(null);
357 373
358 var announce = Msgs.getMsg(useNext ? 374 var announce = Msgs.getMsg(useNext ?
359 'switch_to_next' : 'switch_to_classic'); 375 'switch_to_next' : 'switch_to_classic');
360 cvox.ChromeVox.tts.speak( 376 cvox.ChromeVox.tts.speak(
361 announce, cvox.QueueMode.FLUSH, {doNotInterrupt: true}); 377 announce, cvox.QueueMode.FLUSH, {doNotInterrupt: true});
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 return new RegExp('^(' + globs.map(function(glob) { 841 return new RegExp('^(' + globs.map(function(glob) {
826 return glob.replace(/[.+^$(){}|[\]\\]/g, '\\$&') 842 return glob.replace(/[.+^$(){}|[\]\\]/g, '\\$&')
827 .replace(/\*/g, '.*') 843 .replace(/\*/g, '.*')
828 .replace(/\?/g, '.'); 844 .replace(/\?/g, '.');
829 }).join('|') + ')$'); 845 }).join('|') + ')$');
830 }; 846 };
831 847
832 new Background(); 848 new Background();
833 849
834 }); // goog.scope 850 }); // goog.scope
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698