|  | // Copyright 2012 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #ifndef IOS_CHROME_BROWSER_FIRST_RUN_FIRST_RUN_METRICS_H_ | 
|  | #define IOS_CHROME_BROWSER_FIRST_RUN_FIRST_RUN_METRICS_H_ | 
|  |  | 
|  | @protocol FirstRunMetricsDelegate | 
|  | // A callback function to whichever object is keeping track of whether | 
|  | // a user has attempted to sign in during First Run Sign-in flow. | 
|  | - (void)setSignInAttempted; | 
|  | @end | 
|  |  | 
|  | namespace first_run { | 
|  |  | 
|  | // The different First Run Chrome Login outcomes for users. | 
|  | enum SignInStatus { | 
|  | // User skipped sign in by clicking on Skip at the first opportunity. | 
|  | SIGNIN_SKIPPED_QUICK, | 
|  | // User signed in to Chrome successfully at First Run. | 
|  | SIGNIN_SUCCESSFUL, | 
|  | // User attempted to sign in, but gave up by clicking on Skip after trying. | 
|  | SIGNIN_SKIPPED_GIVEUP, | 
|  | // SSO account exists and user skipped sign in by clicking on Skip at the | 
|  | // first opportunity. | 
|  | HAS_SSO_ACCOUNT_SIGNIN_SKIPPED_QUICK, | 
|  | // SSO account exists and user signed in to Chrome successfully at First Run. | 
|  | HAS_SSO_ACCOUNT_SIGNIN_SUCCESSFUL, | 
|  | // SSO account exists and user attempted to sign in, but gave up by clicking | 
|  | // on Skip after trying. | 
|  | HAS_SSO_ACCOUNT_SIGNIN_SKIPPED_GIVEUP, | 
|  | // Number of First Run states. | 
|  | SIGNIN_SIZE | 
|  | }; | 
|  |  | 
|  | // Starting with iOS 6, Mobile Safari supports Smart App Banners which | 
|  | // can direct users into AppStore to download another app and then launches | 
|  | // the freshly installed app. This UMA histogram tracks the number of | 
|  | // Chrome application launched for the first time (First Run) as the | 
|  | // result of -openURL: call by another application. Note that there is no | 
|  | // 100%-sure way of telling if a launch is due to Smart App Banners. | 
|  | enum ExternalLaunch { | 
|  | // Chrome was launched for the first time from Mobile Safari and there is | 
|  | // sufficient evidence (e.g. via URL parameters) that it was the result of | 
|  | // a Smart App Banner. | 
|  | LAUNCH_BY_SMARTAPPBANNER, | 
|  | // Chrome was launched for the first time from Mobile Safari, but there is | 
|  | // not sufficient indicator to show that it was launched as a result of a | 
|  | // click on Smart App Banner. | 
|  | LAUNCH_BY_MOBILESAFARI, | 
|  | // Chrome was launch for the first time by some other applications. | 
|  | LAUNCH_BY_OTHERS, | 
|  | // Number of ways that Chrome was launched for the first time. | 
|  | LAUNCH_SIZE | 
|  | }; | 
|  |  | 
|  | }  // namespace first_run | 
|  |  | 
|  | #endif  // IOS_CHROME_BROWSER_FIRST_RUN_FIRST_RUN_METRICS_H_ |