signin_metrics.h revision 116680a4aac90f2aa7413d9095a592090648e557
16acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// Copyright 2014 The Chromium Authors. All rights reserved.
26acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// Use of this source code is governed by a BSD-style license that can be
36acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// found in the LICENSE file.
46acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
56acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#ifndef COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_METRICS_H_
66acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#define COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_METRICS_H_
76acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
86acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennnamespace signin_metrics {
96acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
106acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// Enum for the ways in which primary account detection is done.
116acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennenum DifferentPrimaryAccounts {
126acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // token and cookie had same primary accounts.
136acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  ACCOUNTS_SAME = 0,
146acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // Deprecated. Indicates different primary accounts.
156acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  UNUSED_ACCOUNTS_DIFFERENT,
166acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // No GAIA cookie present, so the primaries are considered different.
176acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  NO_COOKIE_PRESENT,
186acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // There was at least one cookie and one token, and the primaries differed.
196acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  COOKIE_AND_TOKEN_PRIMARIES_DIFFERENT,
206acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  NUM_DIFFERENT_PRIMARY_ACCOUNT_METRICS,
216acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn};
226acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
236acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// Track all the ways a profile can become signed out as a histogram.
246acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennenum ProfileSignout {
256acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // The value used within unit tests
266acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  SIGNOUT_TEST = 0,
276acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // The preference or policy controlling if signin is valid has changed.
286acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  SIGNOUT_PREF_CHANGED = 0,
296acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // The valid pattern for signing in to the Google service changed.
306acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  GOOGLE_SERVICE_NAME_PATTERN_CHANGED,
316acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // The preference or policy controlling if signin is valid changed during
326acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // the signin process.
336acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  SIGNIN_PREF_CHANGED_DURING_SIGNIN,
346acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // User clicked to signout from the settings page.
356acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  USER_CLICKED_SIGNOUT_SETTINGS,
366acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // The signin process was aborted, but signin had succeeded, so signout. This
376acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // may be due to a server response, policy definition or user action.
386acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  ABORT_SIGNIN,
396acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // The sync server caused the profile to be signed out.
406acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  SERVER_FORCED_DISABLE,
416acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // The credentials are being transfered to a new profile, so the old one is
426acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // signed out.
436acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  TRANSFER_CREDENTIALS,
446acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
456acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  // Keep this as the last enum.
466acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn  NUM_PROFILE_SIGNOUT_METRICS,
476acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn};
486acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
496acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// Log to UMA histograms and UserCounts stats about a single execution of the
506acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// AccountReconciler.
516acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// |total_number_accounts| - How many accounts are in the browser for this
526acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn//                           profile.
536acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// |count_added_to_cookie_jar| - How many accounts were in the browser but not
546acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn//                               the cookie jar.
556acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// |count_added_to_token| - How may accounts were in the cookie jar but not in
566acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn//                          the browser.
576acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// |primary_accounts_same| - False if the primary account for the cookie jar
586acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn//                           and the token service were different; else true.
596acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// |is_first_reconcile| - True if these stats are from the first execution of
606acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn//                        the AccountReconcilor.
616acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// |pre_count_gaia_cookies| - How many GAIA cookies were present before
626acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn//                            the AccountReconcilor began modifying the state.
636acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennvoid LogSigninAccountReconciliation(int total_number_accounts,
646acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn                                    int count_added_to_cookie_jar,
656acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn                                    int count_added_to_token,
666acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn                                    bool primary_accounts_same,
676acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn                                    bool is_first_reconcile,
686acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn                                    int pre_count_gaia_cookies);
696acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
706acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// Track a successful signin.
716acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennvoid LogSigninAddAccount();
726acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
736acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn// Track a profile signout.
746acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Rennvoid LogSignout(ProfileSignout metric);
756acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
766acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn}  // namespace signin_metrics
776acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn
786acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn#endif  // COMPONENTS_SIGNIN_CORE_BROWSER_SIGNIN_METRICS_H_
796acb9a7ea3d7564944e12cbc73a857b88c1301eeMarius Renn