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

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

Issue 2379783002: Instant App Banner logic. (Closed)
Patch Set: Alphabetize and rename constants Created 4 years, 3 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..2f262c2a108a404ef4131bd1b55cab9a005813e7 100644
--- a/chrome/browser/banners/app_banner_settings_helper.cc
+++ b/chrome/browser/banners/app_banner_settings_helper.cc
@@ -15,6 +15,7 @@
#include "base/metrics/field_trial.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/string_util.h"
+#include "chrome/browser/android/instantapps/instant_apps_settings.h"
Ted C 2016/09/30 18:01:34 This class isn't android specific as of yet, so ma
Maria 2016/09/30 20:35:18 Done.
#include "chrome/browser/banners/app_banner_manager.h"
#include "chrome/browser/banners/app_banner_metrics.h"
#include "chrome/browser/browser_process.h"
@@ -40,7 +41,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;
@@ -394,10 +395,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,
@@ -406,19 +405,15 @@ InstallableStatusCode AppBannerSettingsHelper::ShouldShowBanner(
// Null times are in the distant past, so the delta between real times and
// null events will always be greater than the limits.
if (time - blocked_time <
- base::TimeDelta::FromDays(kMinimumBannerBlockedToBannerShown)) {
- banners::TrackDisplayEvent(banners::DISPLAY_EVENT_BLOCKED_PREVIOUSLY);
+ base::TimeDelta::FromDays(kMinimumBannerBlockedToBannerShown))
return PREVIOUSLY_BLOCKED;
- }
base::Time shown_time =
GetSingleBannerEvent(web_contents, origin_url, package_name_or_start_url,
APP_BANNER_EVENT_DID_SHOW);
if (time - shown_time <
- base::TimeDelta::FromDays(kMinimumDaysBetweenBannerShows)) {
- banners::TrackDisplayEvent(banners::DISPLAY_EVENT_IGNORED_PREVIOUSLY);
+ base::TimeDelta::FromDays(kMinimumDaysBetweenBannerShows))
return PREVIOUSLY_IGNORED;
- }
// If we have gotten this far and want to use site engagement, the banner flow
// was triggered by the site engagement service informing the banner manager
@@ -427,7 +422,9 @@ 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 == InstantAppsSettings::kInstantAppsKey)
Ted C 2016/09/30 18:01:34 when the condition is more than one line, I like t
Maria 2016/09/30 20:35:18 Done.
return NO_ERROR_DETECTED;
double total_engagement = 0;
@@ -437,10 +434,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,7 +560,8 @@ 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() == InstantAppsSettings::kInstantAppsKey ||
+ !value->GetDouble(event_key, &internal_time))
continue;
base::Time added_time = base::Time::FromInternalValue(internal_time);

Powered by Google App Engine
This is Rietveld 408576698