diff options
| author | dominickn <dominickn@chromium.org> | 2015-12-06 16:30:38 -0800 |
|---|---|---|
| committer | Commit bot <commit-bot@chromium.org> | 2015-12-07 00:31:39 +0000 |
| commit | a70ce7be28c0bbc8c4a7ec616173660782a3b821 (patch) | |
| tree | cda5a2e4e37fcd676367d8f8ebe3dda5864620eb /chrome/browser/banners/app_banner_settings_helper.cc | |
| parent | 51ea371ad45bb5887dacf7fca6fe0feef8941262 (diff) | |
| download | chromium_src-a70ce7be28c0bbc8c4a7ec616173660782a3b821.zip chromium_src-a70ce7be28c0bbc8c4a7ec616173660782a3b821.tar.gz chromium_src-a70ce7be28c0bbc8c4a7ec616173660782a3b821.tar.bz2 | |
Revert "Implement a site engagement backend for app banner triggering."
This reverts commit 02b30b18f74daf51b16b1b8ac733f9b44915137f.
Reason for revert: Speculative attempt to see if this fixes the FYI
memory bots (e.g. http://build.chromium.org/p/chromium.memory.fyi/builders/Linux%20Tests%20%28valgrind%29%283%29/builds/48940/steps/memory%20test%3A%20unit/logs/stdio)
NOTRY=true
TBR=benwells
NOTREECHECKS=true
BUG=553858
Review URL: https://codereview.chromium.org/1505633002
Cr-Commit-Position: refs/heads/master@{#363389}
Diffstat (limited to 'chrome/browser/banners/app_banner_settings_helper.cc')
| -rw-r--r-- | chrome/browser/banners/app_banner_settings_helper.cc | 108 |
1 files changed, 17 insertions, 91 deletions
diff --git a/chrome/browser/banners/app_banner_settings_helper.cc b/chrome/browser/banners/app_banner_settings_helper.cc index aca24f6..2f0bb43 100644 --- a/chrome/browser/banners/app_banner_settings_helper.cc +++ b/chrome/browser/banners/app_banner_settings_helper.cc @@ -8,14 +8,11 @@ #include <string> #include "base/command_line.h" -#include "base/metrics/field_trial.h" #include "base/strings/string_number_conversions.h" -#include "base/strings/string_util.h" #include "chrome/browser/banners/app_banner_data_fetcher.h" #include "chrome/browser/banners/app_banner_metrics.h" #include "chrome/browser/browser_process.h" #include "chrome/browser/content_settings/host_content_settings_map_factory.h" -#include "chrome/browser/engagement/site_engagement_service.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_switches.h" #include "components/content_settings/core/browser/host_content_settings_map.h" @@ -66,11 +63,9 @@ const char kBannerParamsDirectKey[] = "direct"; const char kBannerParamsIndirectKey[] = "indirect"; const char kBannerParamsTotalKey[] = "total"; const char kBannerParamsMinutesKey[] = "minutes"; -const char kBannerSiteEngagementParamsKey[] = "app_banner_triggering"; -const char kBannerSiteEngagementParamsTotalKey[] = - "app_banner_triggering_total"; -// Total engagement score required before a banner will actually be triggered. +// Total site engagements where a banner could have been shown before +// a banner will actually be triggered. double gTotalEngagementToTrigger = 2; // Engagement weight assigned to direct and indirect navigations. @@ -120,26 +115,10 @@ double GetEventEngagement(ui::PageTransition transition_type) { } } -// Queries variations for the maximum site engagement score required to trigger -// the banner showing. -void UpdateSiteEngagementToTrigger() { - std::string total_param = variations::GetVariationParamValue( - SiteEngagementService::kEngagementParams, - kBannerSiteEngagementParamsTotalKey); - - if (!total_param.empty()) { - double total_engagement = -1; - - if (base::StringToDouble(total_param, &total_engagement) && - total_engagement > 0) { - AppBannerSettingsHelper::SetTotalEngagementToTrigger(total_engagement); - } - } -} - // Queries variations for updates to the default engagement values assigned // to direct and indirect navigations. void UpdateEngagementWeights() { + std::map<std::string, std::string> params; std::string direct_param = variations::GetVariationParamValue( kBannerParamsKey, kBannerParamsDirectKey); std::string indirect_param = variations::GetVariationParamValue( @@ -181,16 +160,6 @@ void UpdateMinutesBetweenVisits() { } } -// Returns the site engagement karma score for the given origin URL under the -// current profile. -double GetSiteEngagementScoreForOrigin( - content::WebContents* web_contents, - const GURL& origin_url) { - SiteEngagementService* service = SiteEngagementService::Get( - Profile::FromBrowserContext(web_contents->GetBrowserContext())); - return service ? service->GetScore(origin_url) : 0; -} - } // namespace void AppBannerSettingsHelper::ClearHistoryForURLs( @@ -383,10 +352,6 @@ bool AppBannerSettingsHelper::ShouldShowBanner( return true; } - // Never show a banner when the package name or URL is empty. - if (package_name_or_start_url.empty()) - return false; - // Don't show if it has been added to the homescreen. base::Time added_time = GetSingleBannerEvent(web_contents, origin_url, package_name_or_start_url, @@ -417,17 +382,14 @@ bool AppBannerSettingsHelper::ShouldShowBanner( return false; } - double total_engagement = 0; - if (ShouldUseSiteEngagementScore()) { - total_engagement = - GetSiteEngagementScoreForOrigin(web_contents, origin_url); - } else { - std::vector<BannerEvent> could_show_events = GetCouldShowBannerEvents( - web_contents, origin_url, package_name_or_start_url); + std::vector<BannerEvent> could_show_events = GetCouldShowBannerEvents( + web_contents, origin_url, package_name_or_start_url); - for (const auto& event : could_show_events) - total_engagement += event.engagement; - } + // Return true if the total engagement of each applicable could show event + // meets the trigger threshold. + double total_engagement = 0; + for (const auto& event : could_show_events) + total_engagement += event.engagement; if (total_engagement < gTotalEngagementToTrigger) { banners::TrackDisplayEvent(banners::DISPLAY_EVENT_NOT_VISITED_ENOUGH); @@ -443,6 +405,8 @@ AppBannerSettingsHelper::GetCouldShowBannerEvents( const GURL& origin_url, const std::string& package_name_or_start_url) { std::vector<BannerEvent> result; + if (package_name_or_start_url.empty()) + return result; Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext()); @@ -490,6 +454,9 @@ base::Time AppBannerSettingsHelper::GetSingleBannerEvent( DCHECK(event != APP_BANNER_EVENT_COULD_SHOW); DCHECK(event < APP_BANNER_EVENT_NUM_EVENTS); + if (package_name_or_start_url.empty()) + return base::Time(); + Profile* profile = Profile::FromBrowserContext(web_contents->GetBrowserContext()); HostContentSettingsMap* settings = @@ -513,21 +480,6 @@ base::Time AppBannerSettingsHelper::GetSingleBannerEvent( return base::Time::FromInternalValue(internal_time); } -void AppBannerSettingsHelper::RecordMinutesFromFirstVisitToShow( - content::WebContents* web_contents, - const GURL& origin_url, - const std::string& package_name_or_start_url, - base::Time time) { - std::vector<BannerEvent> could_show_events = GetCouldShowBannerEvents( - web_contents, origin_url, package_name_or_start_url); - - int minutes = 0; - if (could_show_events.size()) - minutes = (time - could_show_events[0].time).InMinutes(); - - banners::TrackMinutesFromFirstVisitToBannerShown(minutes); -} - void AppBannerSettingsHelper::SetEngagementWeights(double direct_engagement, double indirect_engagement) { gDirectNavigationEngagement = direct_engagement; @@ -571,32 +523,6 @@ base::Time AppBannerSettingsHelper::BucketTimeToResolution( } void AppBannerSettingsHelper::UpdateFromFieldTrial() { - // If we are using the site engagement score, only extract the total - // engagement to trigger from the params variations. - if (ShouldUseSiteEngagementScore()) { - UpdateSiteEngagementToTrigger(); - } else { - UpdateEngagementWeights(); - UpdateMinutesBetweenVisits(); - } -} - -bool AppBannerSettingsHelper::ShouldUseSiteEngagementScore() { - if (base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kEnableSiteEngagementAppBanner)) { - return true; - } - - // This experiment is controlled under the same key as the broader site - // engagement experiment rather than the banner experiment. This avoids cross - // pollution with other site engagement experiments. However, this experiment - // must only be active when there is one singular group under the banner - // experiment, otherwise the banner and site engagement banner experiments - // will conflict. - // - // Making the experiment active when a variations key is present allows us - // to have experiments which enable multiple features under site engagement. - std::string param = variations::GetVariationParamValue( - SiteEngagementService::kEngagementParams, kBannerSiteEngagementParamsKey); - return !param.empty(); + UpdateEngagementWeights(); + UpdateMinutesBetweenVisits(); } |
