| 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);
|
|
|
|
|