Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: chrome/browser/android/metrics/launch_metrics.cc

Issue 2697473005: Improve the resolution of the menu item homescreen launch source metric. (Closed)
Patch Set: Nits Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/android/shortcut_info.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/android/metrics/launch_metrics.h" 5 #include "chrome/browser/android/metrics/launch_metrics.h"
6 6
7 #include "base/android/jni_string.h" 7 #include "base/android/jni_string.h"
8 #include "base/metrics/histogram_macros.h" 8 #include "base/metrics/histogram_macros.h"
9 #include "base/metrics/user_metrics.h" 9 #include "base/metrics/user_metrics.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 22 matching lines...) Expand all
33 bool RegisterLaunchMetrics(JNIEnv* env) { 33 bool RegisterLaunchMetrics(JNIEnv* env) {
34 return RegisterNativesImpl(env); 34 return RegisterNativesImpl(env);
35 } 35 }
36 36
37 static void RecordLaunch(JNIEnv* env, 37 static void RecordLaunch(JNIEnv* env,
38 const JavaParamRef<jclass>& caller, 38 const JavaParamRef<jclass>& caller,
39 jboolean standalone, 39 jboolean standalone,
40 const JavaParamRef<jstring>& jurl, 40 const JavaParamRef<jstring>& jurl,
41 int source, 41 int source,
42 const JavaParamRef<jobject>& jweb_contents) { 42 const JavaParamRef<jobject>& jweb_contents) {
43 // Interpolate the legacy ADD_TO_HOMESCREEN source into standalone/shortcut.
44 // Unfortunately, we cannot concretely determine whether a standalone add to
45 // homescreen source means a full PWA (with service worker) or a site that has
46 // a manifest with display: standalone.
47 int histogram_source = source;
48 if (histogram_source == ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_DEPRECATED) {
49 if (standalone)
50 histogram_source = ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_STANDALONE;
51 else
52 histogram_source = ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_SHORTCUT;
53 }
54
43 GURL url(base::android::ConvertJavaStringToUTF8(env, jurl)); 55 GURL url(base::android::ConvertJavaStringToUTF8(env, jurl));
44
45 content::WebContents* web_contents = 56 content::WebContents* web_contents =
46 content::WebContents::FromJavaWebContents(jweb_contents); 57 content::WebContents::FromJavaWebContents(jweb_contents);
47 if (web_contents && source == ShortcutInfo::SOURCE_APP_BANNER) { 58
59 if (web_contents &&
60 (histogram_source == ShortcutInfo::SOURCE_APP_BANNER ||
61 histogram_source == ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_PWA)) {
48 // What a user has installed on the Home screen can become disconnected from 62 // What a user has installed on the Home screen can become disconnected from
49 // what Chrome believes is on the Home screen if the user clears their data. 63 // what Chrome believes is on the Home screen if the user clears their data.
50 // Use the launch as a signal that the shortcut still exists. 64 // Use the launch as a signal that the shortcut still exists.
51 AppBannerSettingsHelper::RecordBannerEvent( 65 AppBannerSettingsHelper::RecordBannerEvent(
52 web_contents, url, url.spec(), 66 web_contents, url, url.spec(),
53 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN, 67 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN,
54 base::Time::Now()); 68 base::Time::Now());
55 69
56 // Tell the Site Engagement Service about this launch as sites recently 70 // Tell the Site Engagement Service about this launch as sites recently
57 // launched from a shortcut receive a boost to their engagement. 71 // launched from a shortcut receive a boost to their engagement.
58 SiteEngagementService* service = SiteEngagementService::Get( 72 SiteEngagementService* service = SiteEngagementService::Get(
59 Profile::FromBrowserContext(web_contents->GetBrowserContext())); 73 Profile::FromBrowserContext(web_contents->GetBrowserContext()));
60 service->SetLastShortcutLaunchTime(url); 74 service->SetLastShortcutLaunchTime(url);
61 } 75 }
62 76
63 std::string rappor_metric_source; 77 std::string rappor_metric_source;
64 if (source == ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN) 78 switch (histogram_source) {
65 rappor_metric_source = "Launch.HomeScreenSource.AddToHomeScreen"; 79 case ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_DEPRECATED:
66 else if (source == ShortcutInfo::SOURCE_APP_BANNER) 80 case ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_PWA:
67 rappor_metric_source = "Launch.HomeScreenSource.AppBanner"; 81 case ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_STANDALONE:
68 else if (source == ShortcutInfo::SOURCE_BOOKMARK_NAVIGATOR_WIDGET) 82 case ShortcutInfo::SOURCE_ADD_TO_HOMESCREEN_SHORTCUT:
69 rappor_metric_source = "Launch.HomeScreenSource.BookmarkNavigatorWidget"; 83 rappor_metric_source = "Launch.HomeScreenSource.AddToHomeScreen";
70 else if (source == ShortcutInfo::SOURCE_BOOKMARK_SHORTCUT_WIDGET) 84 break;
71 rappor_metric_source = "Launch.HomeScreenSource.BookmarkShortcutWidget"; 85 case ShortcutInfo::SOURCE_APP_BANNER:
72 else 86 rappor_metric_source = "Launch.HomeScreenSource.AppBanner";
73 rappor_metric_source = "Launch.HomeScreenSource.Unknown"; 87 break;
88 case ShortcutInfo::SOURCE_BOOKMARK_NAVIGATOR_WIDGET:
89 rappor_metric_source = "Launch.HomeScreenSource.BookmarkNavigatorWidget";
90 break;
91 case ShortcutInfo::SOURCE_BOOKMARK_SHORTCUT_WIDGET:
92 rappor_metric_source = "Launch.HomeScreenSource.BookmarkShortcutWidget";
93 break;
94 case ShortcutInfo::SOURCE_NOTIFICATION:
95 rappor_metric_source = "Launch.HomeScreenSource.Notification";
96 break;
97 case ShortcutInfo::SOURCE_UNKNOWN:
98 case ShortcutInfo::SOURCE_COUNT:
99 rappor_metric_source = "Launch.HomeScreenSource.Unknown";
100 break;
101 }
74 102
75 UMA_HISTOGRAM_ENUMERATION("Launch.HomeScreenSource", source, 103 UMA_HISTOGRAM_ENUMERATION("Launch.HomeScreenSource", histogram_source,
76 ShortcutInfo::SOURCE_COUNT); 104 ShortcutInfo::SOURCE_COUNT);
77 105
78 rappor::SampleDomainAndRegistryFromGURL(g_browser_process->rappor_service(), 106 rappor::SampleDomainAndRegistryFromGURL(g_browser_process->rappor_service(),
79 rappor_metric_source, url); 107 rappor_metric_source, url);
80 108
81 int action = standalone ? HOME_SCREEN_LAUNCH_STANDALONE 109 int action = standalone ? HOME_SCREEN_LAUNCH_STANDALONE
82 : HOME_SCREEN_LAUNCH_SHORTCUT; 110 : HOME_SCREEN_LAUNCH_SHORTCUT;
83 std::string rappor_metric_action = standalone ? "Launch.HomeScreen.Standalone" 111 std::string rappor_metric_action = standalone ? "Launch.HomeScreen.Standalone"
84 : "Launch.HomeScreen.Shortcut"; 112 : "Launch.HomeScreen.Shortcut";
85 113
(...skipping 11 matching lines...) Expand all
97 jboolean homepage_is_ntp, 125 jboolean homepage_is_ntp,
98 const JavaParamRef<jstring>& jhomepage_url) { 126 const JavaParamRef<jstring>& jhomepage_url) {
99 GURL homepage_url(base::android::ConvertJavaStringToUTF8(env, jhomepage_url)); 127 GURL homepage_url(base::android::ConvertJavaStringToUTF8(env, jhomepage_url));
100 PrefMetricsService::RecordHomePageLaunchMetrics( 128 PrefMetricsService::RecordHomePageLaunchMetrics(
101 show_home_button, 129 show_home_button,
102 homepage_is_ntp, 130 homepage_is_ntp,
103 homepage_url); 131 homepage_url);
104 } 132 }
105 133
106 }; // namespace metrics 134 }; // namespace metrics
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/android/shortcut_info.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698