Fix infinite recursion on hiding panel when created during fullscreen mode.
[chromium-blink-merge.git] / chrome / browser / resources / print_preview / metrics.js
blobef81ecbc929de837fe78e6abf1f18ce0b4838246
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 cr.define('print_preview', function() {
6 'use strict';
8 /**
9 * Object used to measure usage statistics.
10 * @constructor
12 function Metrics() {};
14 /**
15 * Enumeration of metrics bucket groups. Each group describes a set of events
16 * that can happen in order. This implies that an event cannot occur twice and
17 * an event that occurs semantically before another event, should not occur
18 * after.
19 * @enum {number}
21 Metrics.BucketGroup = {
22 DESTINATION_SEARCH: 0,
23 GCP_PROMO: 1
26 /**
27 * Enumeration of buckets that a user can enter while using the destination
28 * search widget.
29 * @enum {number}
31 Metrics.DestinationSearchBucket = {
32 // Used when the print destination search widget is shown.
33 SHOWN: 0,
34 // Used when the user selects a print destination.
35 DESTINATION_SELECTED: 1,
36 // Used when the print destination search widget is closed without selecting
37 // a print destination.
38 CANCELED: 2,
39 // Used when the Google Cloud Print promotion (shown in the destination
40 // search widget) is shown to the user.
41 CLOUDPRINT_PROMO_SHOWN: 3,
42 // Used when the user chooses to sign-in to their Google account.
43 SIGNIN_TRIGGERED: 4,
44 // Used when a user selects the privet printer in a pair of duplicate
45 // privet and cloud printers.
46 PRIVET_DUPLICATE_SELECTED: 5,
47 // Used when a user selects the cloud printer in a pair of duplicate
48 // privet and cloud printers.
49 CLOUD_DUPLICATE_SELECTED: 6,
50 // Used when a user sees a register promo for a cloud print printer.
51 REGISTER_PROMO_SHOWN: 7,
52 // Used when a user selects a register promo for a cloud print printer.
53 REGISTER_PROMO_SELECTED: 8
56 /**
57 * Enumeration of buckets that a user can enter while using the Google Cloud
58 * Print promotion.
59 * @enum {number}
61 Metrics.GcpPromoBucket = {
62 // Used when the Google Cloud Print pomotion (shown above the pdf preview
63 // plugin) is shown to the user.
64 SHOWN: 0,
65 // Used when the user clicks the "Get started" link in the promotion shown
66 // in CLOUDPRINT_BIG_PROMO_SHOWN.
67 CLICKED: 1,
68 // Used when the user dismisses the promotion shown in
69 // CLOUDPRINT_BIG_PROMO_SHOWN.
70 DISMISSED: 2
73 /**
74 * Name of the C++ function to call to increment bucket counts.
75 * @type {string}
76 * @const
77 * @private
79 Metrics.NATIVE_FUNCTION_NAME_ = 'reportUiEvent';
81 Metrics.prototype = {
82 /**
83 * Increments the counter of a destination-search bucket.
84 * @param {!Metrics.DestinationSearchBucket} bucket Bucket to increment.
86 incrementDestinationSearchBucket: function(bucket) {
87 chrome.send(Metrics.NATIVE_FUNCTION_NAME_,
88 [Metrics.BucketGroup.DESTINATION_SEARCH, bucket]);
91 /**
92 * Increments the counter of a gcp-promo bucket.
93 * @param {!Metrics.GcpPromoBucket} bucket Bucket to increment.
95 incrementGcpPromoBucket: function(bucket) {
96 chrome.send(Metrics.NATIVE_FUNCTION_NAME_,
97 [Metrics.BucketGroup.GCP_PROMO, bucket]);
101 // Export
102 return {
103 Metrics: Metrics