Commit 9f8247f4 authored by Matt Giuca's avatar Matt Giuca Committed by Commit Bot

SiteEngagementService: De-duplicate logic to notify observers.

Change-Id: Ic11c98558f29eeafc05b2bf3a082c808f5ace023
Reviewed-on: https://chromium-review.googlesource.com/792831Reviewed-by: default avatarDominick Ng <dominickn@chromium.org>
Commit-Queue: Matt Giuca <mgiuca@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519586}
parent 5cb5dadf
......@@ -185,9 +185,7 @@ void SiteEngagementService::HandleNotificationInteraction(const GURL& url) {
AddPoints(url, SiteEngagementScore::GetNotificationInteractionPoints());
RecordMetrics();
double score = GetScore(url);
for (SiteEngagementObserver& observer : observer_list_)
observer.OnEngagementIncreased(nullptr /* web_contents */, url, score);
OnEngagementIncreased(nullptr /* web_contents */, url);
}
bool SiteEngagementService::IsBootstrapped() const {
......@@ -515,9 +513,7 @@ void SiteEngagementService::HandleMediaPlaying(
: SiteEngagementScore::GetVisibleMediaPoints());
RecordMetrics();
double score = GetScore(url);
for (SiteEngagementObserver& observer : observer_list_)
observer.OnEngagementIncreased(web_contents, url, score);
OnEngagementIncreased(web_contents, url);
}
void SiteEngagementService::HandleNavigation(content::WebContents* web_contents,
......@@ -531,9 +527,7 @@ void SiteEngagementService::HandleNavigation(content::WebContents* web_contents,
AddPoints(url, SiteEngagementScore::GetNavigationPoints());
RecordMetrics();
double score = GetScore(url);
for (SiteEngagementObserver& observer : observer_list_)
observer.OnEngagementIncreased(web_contents, url, score);
OnEngagementIncreased(web_contents, url);
}
void SiteEngagementService::HandleUserInput(
......@@ -547,6 +541,12 @@ void SiteEngagementService::HandleUserInput(
AddPoints(url, SiteEngagementScore::GetUserInputPoints());
RecordMetrics();
OnEngagementIncreased(web_contents, url);
}
void SiteEngagementService::OnEngagementIncreased(
content::WebContents* web_contents,
const GURL& url) {
double score = GetScore(url);
for (SiteEngagementObserver& observer : observer_list_)
observer.OnEngagementIncreased(web_contents, url, score);
......
......@@ -254,6 +254,13 @@ class SiteEngagementService : public KeyedService,
void HandleUserInput(content::WebContents* web_contents,
SiteEngagementMetrics::EngagementType type);
// Called when the engagement for |url| loaded in |web_contents| increases.
// Calls OnEngagementIncreased in all observers. |web_contents| may be null if
// the engagement has increased when |url| is not in a tab, e.g. from a
// notification interaction.
void OnEngagementIncreased(content::WebContents* web_contents,
const GURL& url);
// Called if |url| changes to |level| engagement, and informs every Helper of
// the change.
void SendLevelChangeToHelpers(const GURL& url,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment