| Index: ui/file_manager/video_player/js/video_player_metrics.js
|
| diff --git a/ui/file_manager/video_player/js/video_player_metrics.js b/ui/file_manager/video_player/js/video_player_metrics.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9baa4b019029eb2b8249d78e2f7950eb994156a6
|
| --- /dev/null
|
| +++ b/ui/file_manager/video_player/js/video_player_metrics.js
|
| @@ -0,0 +1,137 @@
|
| +// Copyright (c) 2014 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +/**
|
| + * @fileoverview Utility methods for accessing chrome.metricsPrivate API.
|
| + *
|
| + * To be included as a first script in main.html
|
| + */
|
| +
|
| +/**
|
| + * @extends {metricsBase}
|
| + */
|
| +var metrics = metricsBase;
|
| +
|
| +/**
|
| + * Values for "VideoPlayer.CastAPIExtensionStaus" metrics.
|
| + * @enum {number}
|
| + */
|
| +metrics.CAST_API_EXTENSION_STATUS = {
|
| + // Cast API extension is not loaded since the cast extension, which is requred
|
| + // by the cast API extension, is not installed or load failed.
|
| + SKIPPED: 0,
|
| + // Installation of Cast API extension is failed.
|
| + INSTALLATION_FAILED: 1,
|
| + // Load of Cast API extension is failed.
|
| + LOAD_FAILED: 2,
|
| + // Cast API extension is newly installed and loaded.
|
| + INSTALLED_AND_LOADED: 3,
|
| + // Cast API extension is loaded.
|
| + LOADED: 4,
|
| + // (sentinel)
|
| + MAX_VALUE: 4,
|
| +};
|
| +
|
| +/**
|
| + * Values for "VideoPlayer.PlayType" metrics.
|
| + * @enum {number}
|
| + */
|
| +metrics.PLAY_TYPE = {
|
| + LOCAL: 0,
|
| + CAST: 1,
|
| + MAX_VALUE: 1,
|
| +};
|
| +
|
| +/**
|
| + * Utility function to check if the given value is in the given values.
|
| + * @param {Object} values
|
| + * @param {*} value
|
| + * @reutrn {boolean} True if one or more elements of the given values hash have
|
| + * the given value as value. False otherwise.
|
| + */
|
| +metrics.hasValue_ = function(values, value) {
|
| + return Object.keys(values).some(function(key) {
|
| + return values[key] === value;
|
| + });
|
| +};
|
| +
|
| +/**
|
| + * Record "VideoPlayer.CastAPIExtensionStatsu" metrics.
|
| + * @param {metrics.CAST_API_EXTENSION_STATUS} status Status to be recorded.
|
| + */
|
| +metrics.recordCastAPIExtensionStatus = function(status) {
|
| + if (!metrics.hasValue_(metrics.CAST_API_EXTENSION_STATUS, status)) {
|
| + console.error('The given value "' + status + '" is invalid.');
|
| + return;
|
| + }
|
| +
|
| + metrics.recordEnum('CastAPIExtensionStatus',
|
| + status,
|
| + metrics.CAST_API_EXTENSION_STATUS.MAX_VALUE);
|
| +};
|
| +
|
| +/**
|
| + * Record "VideoPlayer.NumberOfCastDevices" metrics.
|
| + * @param {number} number Value to be recorded.
|
| + */
|
| +metrics.recordNumberOfCastDevices = function(number) {
|
| + metrics.recordSmallCount('NumberOfCastDevices', number);
|
| +};
|
| +
|
| +/**
|
| + * Record "VideoPlayer.NumberOfOpenedFile" metrics.
|
| + * @param {number} number Value to be recorded.
|
| + */
|
| +metrics.recordNumberOfOpenedFiles = function(number) {
|
| + metrics.recordSmallCount('NumberOfOpenedFiles', number);
|
| +};
|
| +
|
| +/**
|
| + * Record "VideoPlayer.CastedVideoLength" metrics.
|
| + * @param {number} seconds Value to be recorded.
|
| + */
|
| +metrics.recordCastedVideoLength = function(seconds) {
|
| + metrics.recordMediumCount('CastedVideoLength', seconds);
|
| +};
|
| +
|
| +/**
|
| + * Record "VideoPlayer.CastVideoError" metrics.
|
| + */
|
| +metrics.recordCastVideoErrorAction = function() {
|
| + metrics.recordUserAction('CastVideoError');
|
| +};
|
| +
|
| +/**
|
| + * Record "VideoPlayer.OpenVideoPlayer" action.
|
| + */
|
| +metrics.recordOpenVideoPlayerAction = function() {
|
| + metrics.recordUserAction('OpenVideoPlayer');
|
| +};
|
| +
|
| +/**
|
| + * Record "VideoPlayer.PlayType" metrics.
|
| + * @param {metrics.PLAY_TYPE} type Value to be recorded.
|
| + */
|
| +metrics.recordPlayType = function(type) {
|
| + if (!metrics.hasValue_(metrics.PLAY_TYPE, type)) {
|
| + console.error('The given value "' + status + '" is invalid.');
|
| + return;
|
| + }
|
| +
|
| + metrics.recordEnum('PlayType',
|
| + type,
|
| + metrics.PLAY_TYPE.MAX_VALUE);
|
| +};
|
| +
|
| +/**
|
| + * Convert a short metric name to the full format.
|
| + *
|
| + * @param {string} name Short metric name.
|
| + * @return {string} Full metric name.
|
| + * @override
|
| + * @private
|
| + */
|
| +metrics.convertName_ = function(name) {
|
| + return 'VideoPlayer.' + name;
|
| +};
|
|
|