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_ 79