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: |
+ rappor_metric_source = "Launch.HomeScreenSource.Unknown"; |
+ break; |
+ } |
+ |
+ UMA_HISTOGRAM_ENUMERATION("Launch.HomeScreenSource", histogram_source, |
ShortcutInfo::SOURCE_COUNT); |
rappor::SampleDomainAndRegistryFromGURL(g_browser_process->rappor_service(), |