Upstream version 9.37.195.0
[platform/framework/web/crosswalk.git] / src / components / signin / core / browser / signin_metrics.h
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
3 // found in the LICENSE file.
4
5 #ifndef COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_METRICS_H_
6 #define COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_METRICS_H_
7
8 namespace signin_metrics {
9
10 // Enum for the ways in which primary account detection is done.
11 enum DifferentPrimaryAccounts {
12   // token and cookie had same primary accounts.
13   ACCOUNTS_SAME = 0,
14   // Deprecated. Indicates different primary accounts.
15   UNUSED_ACCOUNTS_DIFFERENT,
16   // No GAIA cookie present, so the primaries are considered different.
17   NO_COOKIE_PRESENT,
18   // There was at least one cookie and one token, and the primaries differed.
19   COOKIE_AND_TOKEN_PRIMARIES_DIFFERENT,
20   NUM_DIFFERENT_PRIMARY_ACCOUNT_METRICS,
21 };
22
23 // Track all the ways a profile can become signed out as a histogram.
24 enum ProfileSignout {
25   // The value used within unit tests
26   SIGNOUT_TEST = 0,
27   // The preference or policy controlling if signin is valid has changed.
28   SIGNOUT_PREF_CHANGED = 0,
29   // The valid pattern for signing in to the Google service changed.
30   GOOGLE_SERVICE_NAME_PATTERN_CHANGED,
31   // The preference or policy controlling if signin is valid changed during
32   // the signin process.
33   SIGNIN_PREF_CHANGED_DURING_SIGNIN,
34   // User clicked to signout from the settings page.
35   USER_CLICKED_SIGNOUT_SETTINGS,
36   // The signin process was aborted, but signin had succeeded, so signout. This
37   // may be due to a server response, policy definition or user action.
38   ABORT_SIGNIN,
39   // The sync server caused the profile to be signed out.
40   SERVER_FORCED_DISABLE,
41   // The credentials are being transfered to a new profile, so the old one is
42   // signed out.
43   TRANSFER_CREDENTIALS,
44
45   // Keep this as the last enum.
46   NUM_PROFILE_SIGNOUT_METRICS,
47 };
48
49 // Log to UMA histograms and UserCounts stats about a single execution of the
50 // AccountReconciler.
51 // |total_number_accounts| - How many accounts are in the browser for this
52 //                           profile.
53 // |count_added_to_cookie_jar| - How many accounts were in the browser but not
54 //                               the cookie jar.
55 // |count_added_to_token| - How may accounts were in the cookie jar but not in
56 //                          the browser.
57 // |primary_accounts_same| - False if the primary account for the cookie jar
58 //                           and the token service were different; else true.
59 // |is_first_reconcile| - True if these stats are from the first execution of
60 //                        the AccountReconcilor.
61 // |pre_count_gaia_cookies| - How many GAIA cookies were present before
62 //                            the AccountReconcilor began modifying the state.
63 void LogSigninAccountReconciliation(int total_number_accounts,
64                                     int count_added_to_cookie_jar,
65                                     int count_added_to_token,
66                                     bool primary_accounts_same,
67                                     bool is_first_reconcile,
68                                     int pre_count_gaia_cookies);
69
70 // Track a successful signin.
71 void LogSigninAddAccount();
72
73 // Track a profile signout.
74 void LogSignout(ProfileSignout metric);
75
76 }  // namespace signin_metrics
77
78 #endif  // COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_METRICS_H_