Upstreaming browser/ui/uikit_ui_util from iOS.
[chromium-blink-merge.git] / ios / chrome / browser / first_run / first_run_metrics.h
blob273a627a8c68da0886f0a793b8af32a114e74137
1 // Copyright 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 #ifndef IOS_CHROME_BROWSER_FIRST_RUN_FIRST_RUN_METRICS_H_
6 #define IOS_CHROME_BROWSER_FIRST_RUN_FIRST_RUN_METRICS_H_
8 @protocol FirstRunMetricsDelegate
9 // A callback function to whichever object is keeping track of whether
10 // a user has attempted to sign in during First Run Sign-in flow.
11 - (void)setSignInAttempted;
12 @end
14 namespace first_run {
16 // The different First Run Chrome Login outcomes for users.
17 enum SignInStatus {
18 // User skipped sign in by clicking on Skip at the first opportunity.
19 SIGNIN_SKIPPED_QUICK,
20 // User signed in to Chrome successfully at First Run.
21 SIGNIN_SUCCESSFUL,
22 // User attempted to sign in, but gave up by clicking on Skip after trying.
23 SIGNIN_SKIPPED_GIVEUP,
24 // SSO account exists and user skipped sign in by clicking on Skip at the
25 // first opportunity.
26 HAS_SSO_ACCOUNT_SIGNIN_SKIPPED_QUICK,
27 // SSO account exists and user signed in to Chrome successfully at First Run.
28 HAS_SSO_ACCOUNT_SIGNIN_SUCCESSFUL,
29 // SSO account exists and user attempted to sign in, but gave up by clicking
30 // on Skip after trying.
31 HAS_SSO_ACCOUNT_SIGNIN_SKIPPED_GIVEUP,
32 // Number of First Run states.
33 SIGNIN_SIZE
36 // Starting with iOS 6, Mobile Safari supports Smart App Banners which
37 // can direct users into AppStore to download another app and then launches
38 // the freshly installed app. This UMA histogram tracks the number of
39 // Chrome application launched for the first time (First Run) as the
40 // result of -openURL: call by another application. Note that there is no
41 // 100%-sure way of telling if a launch is due to Smart App Banners.
42 enum ExternalLaunch {
43 // Chrome was launched for the first time from Mobile Safari and there is
44 // sufficient evidence (e.g. via URL parameters) that it was the result of
45 // a Smart App Banner.
46 LAUNCH_BY_SMARTAPPBANNER,
47 // Chrome was launched for the first time from Mobile Safari, but there is
48 // not sufficient indicator to show that it was launched as a result of a
49 // click on Smart App Banner.
50 LAUNCH_BY_MOBILESAFARI,
51 // Chrome was launch for the first time by some other applications.
52 LAUNCH_BY_OTHERS,
53 // Number of ways that Chrome was launched for the first time.
54 LAUNCH_SIZE
57 } // namespace first_run
59 #endif // IOS_CHROME_BROWSER_FIRST_RUN_FIRST_RUN_METRICS_H_