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

Unified Diff: chrome/browser/resources/hotword/state_manager.js

Issue 667873002: Add UMA to hotword trigger extension. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove incorrect log for message timeout. Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/hotword/state_manager.js
diff --git a/chrome/browser/resources/hotword/state_manager.js b/chrome/browser/resources/hotword/state_manager.js
index 9b033da9fdf714e25c897c7c945eb12ec873645f..67d4f41923f35fc1513a8493551b64db3e371e81 100644
--- a/chrome/browser/resources/hotword/state_manager.js
+++ b/chrome/browser/resources/hotword/state_manager.js
@@ -102,6 +102,34 @@ cr.define('hotword', function() {
};
var State_ = StateManager.State_;
+ var UmaMediaStreamOpenResults_ = {
+ // These first error are defined by the MediaStream spec:
+ // http://w3c.github.io/mediacapture-main/getusermedia.html#idl-def-MediaStreamError
+ 'NotSupportedError':
+ hotword.constants.UmaMediaStreamOpenResult.NOT_SUPPORTED,
+ 'PermissionDeniedError':
+ hotword.constants.UmaMediaStreamOpenResult.PERMISSION_DENIED,
+ 'ConstraintNotSatisfiedError':
+ hotword.constants.UmaMediaStreamOpenResult.CONSTRAINT_NOT_SATISFIED,
+ 'OverconstrainedError':
+ hotword.constants.UmaMediaStreamOpenResult.OVERCONSTRAINED,
+ 'NotFoundError': hotword.constants.UmaMediaStreamOpenResult.NOT_FOUND,
+ 'AbortError': hotword.constants.UmaMediaStreamOpenResult.ABORT,
+ 'SourceUnavailableError':
+ hotword.constants.UmaMediaStreamOpenResult.SOURCE_UNAVAILABLE,
+ // The next few errors are chrome-specific. See:
+ // content/renderer/media/user_media_client_impl.cc
+ // (UserMediaClientImpl::GetUserMediaRequestFailed)
+ 'PermissionDismissedError':
+ hotword.constants.UmaMediaStreamOpenResult.PERMISSION_DISMISSED,
+ 'InvalidStateError':
+ hotword.constants.UmaMediaStreamOpenResult.INVALID_STATE,
+ 'DevicesNotFoundError':
+ hotword.constants.UmaMediaStreamOpenResult.DEVICES_NOT_FOUND,
+ 'InvalidSecurityOriginError':
+ hotword.constants.UmaMediaStreamOpenResult.INVALID_SECURITY_ORIGIN
+ };
+
StateManager.prototype = {
/**
* Request status details update. Intended to be called from the
@@ -199,12 +227,26 @@ cr.define('hotword', function() {
navigator.webkitGetUserMedia(
/** @type {MediaStreamConstraints} */ (constraints),
function(stream) {
+ hotword.metrics.recordEnum(
+ hotword.constants.UmaMetrics.MEDIA_STREAM_RESULT,
+ hotword.constants.UmaMediaStreamOpenResult.SUCCESS,
+ hotword.constants.UmaMediaStreamOpenResult.MAX);
if (!this.pluginManager_.initialize(naclArch, stream)) {
this.state_ = State_.ERROR;
this.shutdownPluginManager_();
}
}.bind(this),
function(error) {
+ if (error.name in UmaMediaStreamOpenResults_) {
+ var metricValue = UmaMediaStreamOpenResults_[error.name];
+ } else {
+ var metricValue =
+ hotword.constants.UmaMediaStreamOpenResult.UNKNOWN;
+ }
+ hotword.metrics.recordEnum(
+ hotword.constants.UmaMetrics.MEDIA_STREAM_RESULT,
+ metricValue,
+ hotword.constants.UmaMediaStreamOpenResult.MAX);
this.state_ = State_.ERROR;
this.pluginManager_ = null;
}.bind(this));
@@ -285,6 +327,8 @@ cr.define('hotword', function() {
*/
onTrigger_: function() {
hotword.debug('Hotword triggered!');
+ chrome.metricsPrivate.recordUserAction(
+ hotword.constants.UmaMetrics.TRIGGER);
assert(this.pluginManager_, 'No NaCl plugin loaded on trigger');
// Detector implicitly stops when the hotword is detected.
this.state_ = State_.STOPPED;
« no previous file with comments | « chrome/browser/resources/hotword/nacl_manager.js ('k') | chrome/common/extensions/api/_permission_features.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698