| 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(),
|
|
|