Chromium Code Reviews| Index: chrome/browser/android/metrics/launch_metrics.cc |
| diff --git a/chrome/browser/android/metrics/launch_metrics.cc b/chrome/browser/android/metrics/launch_metrics.cc |
| index b231fe5697b665e5e31a6b52a16e7c73e27fe37f..3597364bca5392636d7decab49537891d2665779 100644 |
| --- a/chrome/browser/android/metrics/launch_metrics.cc |
| +++ b/chrome/browser/android/metrics/launch_metrics.cc |
| @@ -40,11 +40,25 @@ static void RecordLaunch(JNIEnv* env, |
| const JavaParamRef<jstring>& jurl, |
| int source, |
| const JavaParamRef<jobject>& jweb_contents) { |
| - GURL url(base::android::ConvertJavaStringToUTF8(env, jurl)); |
| + // Interpolate the legacy ADD_TO_HOMESCREEN source into standalone/shortcut. |
| + // Unfortunately, we cannot concretely determine whether a standalone add to |
| + // homescreen source means a full PWA (with service worker) or a site that has |
| + // a manifest with display: standalone. |
| + int histogram_source = source; |
| + if (histogram_source == ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_DEPRECATED) { |
| + if (standalone) |
| + histogram_source = ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_STANDALONE; |
| + else |
| + histogram_source = ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_SHORTCUT; |
| + } |
| + GURL url(base::android::ConvertJavaStringToUTF8(env, jurl)); |
| content::WebContents* web_contents = |
| content::WebContents::FromJavaWebContents(jweb_contents); |
| - if (web_contents && source == ShortcutInfo::SOURCE_APP_BANNER) { |
| + |
| + if (web_contents && |
| + (histogram_source == ShortcutInfo::SOURCE_APP_BANNER || |
| + histogram_source == ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_PWA)) { |
| // What a user has installed on the Home screen can become disconnected from |
| // what Chrome believes is on the Home screen if the user clears their data. |
| // Use the launch as a signal that the shortcut still exists. |
| @@ -61,18 +75,32 @@ static void RecordLaunch(JNIEnv* env, |
| } |
| std::string rappor_metric_source; |
| - if (source == ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN) |
| - rappor_metric_source = "Launch.HomeScreenSource.AddToHomeScreen"; |
| - else if (source == ShortcutInfo::SOURCE_APP_BANNER) |
| - rappor_metric_source = "Launch.HomeScreenSource.AppBanner"; |
| - else if (source == ShortcutInfo::SOURCE_BOOKMARK_NAVIGATOR_WIDGET) |
| - rappor_metric_source = "Launch.HomeScreenSource.BookmarkNavigatorWidget"; |
| - else if (source == ShortcutInfo::SOURCE_BOOKMARK_SHORTCUT_WIDGET) |
| - rappor_metric_source = "Launch.HomeScreenSource.BookmarkShortcutWidget"; |
| - else |
| - rappor_metric_source = "Launch.HomeScreenSource.Unknown"; |
| - |
| - UMA_HISTOGRAM_ENUMERATION("Launch.HomeScreenSource", source, |
| + switch (histogram_source) { |
| + case ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_DEPRECATED: |
| + case ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_PWA: |
| + case ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_STANDALONE: |
| + case ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_SHORTCUT: |
| + rappor_metric_source = "Launch.HomeScreenSource.AddToHomeScreen"; |
| + break; |
| + case ShortcutInfo::SOURCE_APP_BANNER: |
| + rappor_metric_source = "Launch.HomeScreenSource.AppBanner"; |
| + break; |
| + case ShortcutInfo::SOURCE_BOOKMARK_NAVIGATOR_WIDGET: |
| + rappor_metric_source = "Launch.HomeScreenSource.BookmarkNavigatorWidget"; |
| + break; |
| + case ShortcutInfo::SOURCE_BOOKMARK_SHORTCUT_WIDGET: |
| + rappor_metric_source = "Launch.HomeScreenSource.BookmarkShortcutWidget"; |
| + break; |
| + case ShortcutInfo::SOURCE_NOTIFICATION: |
| + rappor_metric_source = "Launch.HomeScreenSource.Notification"; |
| + break; |
| + case ShortcutInfo::SOURCE_UNKNOWN: |
| + case ShortcutInfo::SOURCE_COUNT: |
|
gone
2017/02/14 19:44:51
Should SOURCE_COUNT just fall into default:?
dominickn
2017/02/14 23:02:14
I didn't want to have a default case to ensure tha
|
| + rappor_metric_source = "Launch.HomeScreenSource.Unknown"; |
| + break; |
| + } |
| + |
| + UMA_HISTOGRAM_ENUMERATION("Launch.HomeScreenSource", histogram_source, |
| ShortcutInfo::SOURCE_COUNT); |
| rappor::SampleDomainAndRegistryFromGURL(g_browser_process->rappor_service(), |