// Copyright (c) 2012 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. cr.define('print_preview', function() { 'use strict'; /** * Object used to measure usage statistics. * @constructor */ function Metrics() {}; /** * Enumeration of metrics bucket groups. Each group describes a set of events * that can happen in order. This implies that an event cannot occur twice and * an event that occurs semantically before another event, should not occur * after. * @enum {number} */ Metrics.BucketGroup = { DESTINATION_SEARCH: 0, GCP_PROMO: 1 }; /** * Enumeration of buckets that a user can enter while using the destination * search widget. * @enum {number} */ Metrics.DestinationSearchBucket = { // Used when the print destination search widget is shown. SHOWN: 0, // Used when the user selects a print destination. DESTINATION_SELECTED: 1, // Used when the print destination search widget is closed without selecting // a print destination. CANCELED: 2, // Used when the Google Cloud Print promotion (shown in the destination // search widget) is shown to the user. CLOUDPRINT_PROMO_SHOWN: 3, // Used when the user chooses to sign-in to their Google account. SIGNIN_TRIGGERED: 4, // Used when a user selects the privet printer in a pair of duplicate // privet and cloud printers. PRIVET_DUPLICATE_SELECTED: 5, // Used when a user selects the cloud printer in a pair of duplicate // privet and cloud printers. CLOUD_DUPLICATE_SELECTED: 6 }; /** * Enumeration of buckets that a user can enter while using the Google Cloud * Print promotion. * @enum {number} */ Metrics.GcpPromoBucket = { // Used when the Google Cloud Print pomotion (shown above the pdf preview // plugin) is shown to the user. SHOWN: 0, // Used when the user clicks the "Get started" link in the promotion shown // in CLOUDPRINT_BIG_PROMO_SHOWN. CLICKED: 1, // Used when the user dismisses the promotion shown in // CLOUDPRINT_BIG_PROMO_SHOWN. DISMISSED: 2 }; /** * Name of the C++ function to call to increment bucket counts. * @type {string} * @const * @private */ Metrics.NATIVE_FUNCTION_NAME_ = 'reportUiEvent'; Metrics.prototype = { /** * Increments the counter of a destination-search bucket. * @param {!Metrics.DestinationSearchBucket} bucket Bucket to increment. */ incrementDestinationSearchBucket: function(bucket) { chrome.send(Metrics.NATIVE_FUNCTION_NAME_, [Metrics.BucketGroup.DESTINATION_SEARCH, bucket]); }, /** * Increments the counter of a gcp-promo bucket. * @param {!Metrics.GcpPromoBucket} bucket Bucket to increment. */ incrementGcpPromoBucket: function(bucket) { chrome.send(Metrics.NATIVE_FUNCTION_NAME_, [Metrics.BucketGroup.GCP_PROMO, bucket]); } }; // Export return { Metrics: Metrics }; });