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

Unified Diff: chrome/browser/banners/app_banner_settings_helper.cc

Issue 2379783002: Instant App Banner logic. (Closed)
Patch Set: Fixing tests. Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/banners/app_banner_settings_helper.cc
diff --git a/chrome/browser/banners/app_banner_settings_helper.cc b/chrome/browser/banners/app_banner_settings_helper.cc
index 5c41600cf87b7865830d9d77451f9fd045a8bcfe..886d72ec44c419ffeac9cf9280f7d6016c38381d 100644
--- a/chrome/browser/banners/app_banner_settings_helper.cc
+++ b/chrome/browser/banners/app_banner_settings_helper.cc
@@ -40,7 +40,7 @@ const size_t kMaxAppsPerSite = 3;
const unsigned int kOldestCouldShowBannerEventInDays = 14;
// Number of days that showing the banner will prevent it being seen again for.
-const unsigned int kMinimumDaysBetweenBannerShows = 60;
+const unsigned int kMinimumDaysBetweenBannerShows = 14;
const unsigned int kNumberOfMinutesInADay = 1440;
@@ -199,6 +199,9 @@ void UpdateMinutesBetweenVisits() {
} // namespace
+// Key to store instant apps events.
+const char AppBannerSettingsHelper::kInstantAppsKey[] = "instantapps";
+
void AppBannerSettingsHelper::ClearHistoryForURLs(
Profile* profile,
const std::set<GURL>& origin_urls) {
@@ -394,10 +397,8 @@ InstallableStatusCode AppBannerSettingsHelper::ShouldShowBanner(
base::Time added_time =
GetSingleBannerEvent(web_contents, origin_url, package_name_or_start_url,
APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN);
- if (!added_time.is_null()) {
- banners::TrackDisplayEvent(banners::DISPLAY_EVENT_INSTALLED_PREVIOUSLY);
+ if (!added_time.is_null())
return ALREADY_INSTALLED;
- }
base::Time blocked_time =
GetSingleBannerEvent(web_contents, origin_url, package_name_or_start_url,
@@ -407,7 +408,6 @@ InstallableStatusCode AppBannerSettingsHelper::ShouldShowBanner(
// null events will always be greater than the limits.
if (time - blocked_time <
base::TimeDelta::FromDays(kMinimumBannerBlockedToBannerShown)) {
- banners::TrackDisplayEvent(banners::DISPLAY_EVENT_BLOCKED_PREVIOUSLY);
return PREVIOUSLY_BLOCKED;
}
@@ -416,7 +416,6 @@ InstallableStatusCode AppBannerSettingsHelper::ShouldShowBanner(
APP_BANNER_EVENT_DID_SHOW);
if (time - shown_time <
base::TimeDelta::FromDays(kMinimumDaysBetweenBannerShows)) {
- banners::TrackDisplayEvent(banners::DISPLAY_EVENT_IGNORED_PREVIOUSLY);
return PREVIOUSLY_IGNORED;
}
@@ -427,8 +426,11 @@ InstallableStatusCode AppBannerSettingsHelper::ShouldShowBanner(
// TODO(dominickn): just return true here and remove all of the following code
// in this method when app banners have fully migrated to using site
// engagement as a trigger condition. See crbug.com/616322.
- if (ShouldUseSiteEngagementScore())
+ // Do not do engagement checks for instant app banners.
+ if (ShouldUseSiteEngagementScore() ||
+ package_name_or_start_url == kInstantAppsKey) {
return NO_ERROR_DETECTED;
+ }
double total_engagement = 0;
std::vector<BannerEvent> could_show_events = GetCouldShowBannerEvents(
@@ -437,10 +439,8 @@ InstallableStatusCode AppBannerSettingsHelper::ShouldShowBanner(
for (const auto& event : could_show_events)
total_engagement += event.engagement;
- if (!HasSufficientEngagement(total_engagement)) {
- banners::TrackDisplayEvent(banners::DISPLAY_EVENT_NOT_VISITED_ENOUGH);
+ if (!HasSufficientEngagement(total_engagement))
return INSUFFICIENT_ENGAGEMENT;
- }
return NO_ERROR_DETECTED;
}
@@ -565,8 +565,10 @@ bool AppBannerSettingsHelper::WasLaunchedRecently(Profile* profile,
std::string event_key(
kBannerEventKeys[APP_BANNER_EVENT_DID_ADD_TO_HOMESCREEN]);
double internal_time;
- if (!value->GetDouble(event_key, &internal_time))
+ if (it.key() == kInstantAppsKey ||
+ !value->GetDouble(event_key, &internal_time)) {
continue;
+ }
base::Time added_time = base::Time::FromInternalValue(internal_time);
« no previous file with comments | « chrome/browser/banners/app_banner_settings_helper.h ('k') | chrome/browser/banners/app_banner_settings_helper_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698