| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/banners/app_banner_settings_helper.h" | 5 #include "chrome/browser/banners/app_banner_settings_helper.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 void UpdateMinutesBetweenVisits() { | 190 void UpdateMinutesBetweenVisits() { |
| 191 std::string param = variations::GetVariationParamValue( | 191 std::string param = variations::GetVariationParamValue( |
| 192 kBannerParamsKey, kBannerParamsMinutesKey); | 192 kBannerParamsKey, kBannerParamsMinutesKey); |
| 193 if (!param.empty()) { | 193 if (!param.empty()) { |
| 194 int minimum_minutes = 0; | 194 int minimum_minutes = 0; |
| 195 if (base::StringToInt(param, &minimum_minutes)) | 195 if (base::StringToInt(param, &minimum_minutes)) |
| 196 AppBannerSettingsHelper::SetMinimumMinutesBetweenVisits(minimum_minutes); | 196 AppBannerSettingsHelper::SetMinimumMinutesBetweenVisits(minimum_minutes); |
| 197 } | 197 } |
| 198 } | 198 } |
| 199 | 199 |
| 200 std::string getMetric( |
| 201 const AppBannerSettingsHelper::AppBannerRapporMetric& rappor_metric) { |
| 202 if (rappor_metric == AppBannerSettingsHelper::NATIVE) |
| 203 return "AppBanner.NativeApp.Installed"; |
| 204 else if (rappor_metric == AppBannerSettingsHelper::WEB) |
| 205 return "AppBanner.WebApp.Installed"; |
| 206 else |
| 207 return "AppBanner.WebApk.Installed"; |
| 208 } |
| 209 |
| 200 } // namespace | 210 } // namespace |
| 201 | 211 |
| 202 void AppBannerSettingsHelper::ClearHistoryForURLs( | 212 void AppBannerSettingsHelper::ClearHistoryForURLs( |
| 203 Profile* profile, | 213 Profile* profile, |
| 204 const std::set<GURL>& origin_urls) { | 214 const std::set<GURL>& origin_urls) { |
| 205 HostContentSettingsMap* settings = | 215 HostContentSettingsMap* settings = |
| 206 HostContentSettingsMapFactory::GetForProfile(profile); | 216 HostContentSettingsMapFactory::GetForProfile(profile); |
| 207 for (const GURL& origin_url : origin_urls) { | 217 for (const GURL& origin_url : origin_urls) { |
| 208 settings->SetWebsiteSettingDefaultScope(origin_url, GURL(), | 218 settings->SetWebsiteSettingDefaultScope(origin_url, GURL(), |
| 209 CONTENT_SETTINGS_TYPE_APP_BANNER, | 219 CONTENT_SETTINGS_TYPE_APP_BANNER, |
| 210 std::string(), nullptr); | 220 std::string(), nullptr); |
| 211 settings->FlushLossyWebsiteSettings(); | 221 settings->FlushLossyWebsiteSettings(); |
| 212 } | 222 } |
| 213 } | 223 } |
| 214 | 224 |
| 215 void AppBannerSettingsHelper::RecordBannerInstallEvent( | 225 void AppBannerSettingsHelper::RecordBannerInstallEvent( |
| 216 content::WebContents* web_contents, | 226 content::WebContents* web_contents, |
| 217 const std::string& package_name_or_start_url, | 227 const std::string& package_name_or_start_url, |
| 218 AppBannerRapporMetric rappor_metric) { | 228 AppBannerRapporMetric rappor_metric) { |
| 219 banners::TrackInstallEvent(banners::INSTALL_EVENT_WEB_APP_INSTALLED); | 229 banners::TrackInstallEvent(banners::INSTALL_EVENT_WEB_APP_INSTALLED); |
| 220 | 230 |
| 221 AppBannerSettingsHelper::RecordBannerEvent( | 231 AppBannerSettingsHelper::RecordBannerEvent( |
| 222 web_contents, web_contents->GetURL(), package_name_or_start_url, | 232 web_contents, web_contents->GetURL(), package_name_or_start_url, |
| 223 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN, | 233 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN, |
| 224 banners::AppBannerManager::GetCurrentTime()); | 234 banners::AppBannerManager::GetCurrentTime()); |
| 225 | 235 |
| 226 rappor::SampleDomainAndRegistryFromGURL( | 236 rappor::SampleDomainAndRegistryFromGURL( |
| 227 g_browser_process->rappor_service(), | 237 g_browser_process->rappor_service(), |
| 228 (rappor_metric == WEB ? "AppBanner.WebApp.Installed" | 238 getMetric(rappor_metric), |
| 229 : "AppBanner.NativeApp.Installed"), | |
| 230 web_contents->GetURL()); | 239 web_contents->GetURL()); |
| 231 } | 240 } |
| 232 | 241 |
| 233 void AppBannerSettingsHelper::RecordBannerDismissEvent( | 242 void AppBannerSettingsHelper::RecordBannerDismissEvent( |
| 234 content::WebContents* web_contents, | 243 content::WebContents* web_contents, |
| 235 const std::string& package_name_or_start_url, | 244 const std::string& package_name_or_start_url, |
| 236 AppBannerRapporMetric rappor_metric) { | 245 AppBannerRapporMetric rappor_metric) { |
| 237 banners::TrackDismissEvent(banners::DISMISS_EVENT_CLOSE_BUTTON); | 246 banners::TrackDismissEvent(banners::DISMISS_EVENT_CLOSE_BUTTON); |
| 238 | 247 |
| 239 AppBannerSettingsHelper::RecordBannerEvent( | 248 AppBannerSettingsHelper::RecordBannerEvent( |
| 240 web_contents, web_contents->GetURL(), package_name_or_start_url, | 249 web_contents, web_contents->GetURL(), package_name_or_start_url, |
| 241 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_BLOCK, | 250 AppBannerSettingsHelper::APP_BANNER_EVENT_DID_BLOCK, |
| 242 banners::AppBannerManager::GetCurrentTime()); | 251 banners::AppBannerManager::GetCurrentTime()); |
| 243 | 252 |
| 244 rappor::SampleDomainAndRegistryFromGURL( | 253 rappor::SampleDomainAndRegistryFromGURL( |
| 245 g_browser_process->rappor_service(), | 254 g_browser_process->rappor_service(), |
| 246 (rappor_metric == WEB ? "AppBanner.WebApp.Dismissed" | 255 getMetric(rappor_metric), |
| 247 : "AppBanner.NativeApp.Dismissed"), | |
| 248 web_contents->GetURL()); | 256 web_contents->GetURL()); |
| 249 } | 257 } |
| 250 | 258 |
| 251 void AppBannerSettingsHelper::RecordBannerEvent( | 259 void AppBannerSettingsHelper::RecordBannerEvent( |
| 252 content::WebContents* web_contents, | 260 content::WebContents* web_contents, |
| 253 const GURL& origin_url, | 261 const GURL& origin_url, |
| 254 const std::string& package_name_or_start_url, | 262 const std::string& package_name_or_start_url, |
| 255 AppBannerEvent event, | 263 AppBannerEvent event, |
| 256 base::Time time) { | 264 base::Time time) { |
| 257 DCHECK(event != APP_BANNER_EVENT_COULD_SHOW); | 265 DCHECK(event != APP_BANNER_EVENT_COULD_SHOW); |
| (...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 649 return true; | 657 return true; |
| 650 } | 658 } |
| 651 | 659 |
| 652 // Assume any value which is not "0" or "false" indicates that we should use | 660 // Assume any value which is not "0" or "false" indicates that we should use |
| 653 // site engagement. | 661 // site engagement. |
| 654 std::string param = variations::GetVariationParamValue( | 662 std::string param = variations::GetVariationParamValue( |
| 655 kBannerParamsKey, kBannerSiteEngagementParamsKey); | 663 kBannerParamsKey, kBannerSiteEngagementParamsKey); |
| 656 | 664 |
| 657 return (!param.empty() && param != "0" && param != "false"); | 665 return (!param.empty() && param != "0" && param != "false"); |
| 658 } | 666 } |
| OLD | NEW |