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

Unified Diff: chrome/browser/android/ntp/content_suggestions_notifier_service.cc

Issue 2618703004: Use server signal to decide whether to notify (Closed)
Patch Set: Created 3 years, 11 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/android/ntp/content_suggestions_notifier_service.cc
diff --git a/chrome/browser/android/ntp/content_suggestions_notifier_service.cc b/chrome/browser/android/ntp/content_suggestions_notifier_service.cc
index 07f305e977bb5db8ed0fb830f14f7e07319817d7..606e5a4fac38325398df37ebbe4d98171ec90bd1 100644
--- a/chrome/browser/android/ntp/content_suggestions_notifier_service.cc
+++ b/chrome/browser/android/ntp/content_suggestions_notifier_service.cc
@@ -53,19 +53,16 @@ class ContentSuggestionsNotifierService::NotifyingObserver
: service_(service), prefs_(prefs), weak_ptr_factory_(this) {}
void OnNewSuggestions(Category category) override {
- if (!category.IsKnownCategory(KnownCategories::ARTICLES)) {
+ const ContentSuggestion* suggestion = GetSuggestionToNotifyAbout(category);
+ if (!suggestion) {
return;
}
- const auto& suggestions = service_->GetSuggestionsForCategory(category);
- if (!suggestions.empty()) {
- const auto& suggestion = suggestions[0];
- service_->FetchSuggestionImage(
- suggestions[0].id(),
- base::Bind(&NotifyingObserver::ImageFetched,
- weak_ptr_factory_.GetWeakPtr(), suggestion.id(),
- suggestion.url(), suggestion.title(),
- suggestion.publisher_name()));
- }
+ service_->FetchSuggestionImage(
+ suggestion->id(),
+ base::Bind(&NotifyingObserver::ImageFetched,
+ weak_ptr_factory_.GetWeakPtr(), suggestion->id(),
+ suggestion->url(), suggestion->title(),
+ suggestion->publisher_name()));
}
void OnCategoryStatusChanged(Category category,
@@ -106,6 +103,24 @@ class ContentSuggestionsNotifierService::NotifyingObserver
}
private:
+ const ContentSuggestion* GetSuggestionToNotifyAbout(Category category) {
+ const auto& suggestions = service_->GetSuggestionsForCategory(category);
+ if (false /* DO_NOT_SUBMIT: always_notify after crrev.com/2613863003 */) {
Bernhard Bauer 2017/01/05 17:31:17 So, if the feature is enabled, we will always noti
sfiera 2017/01/05 19:14:37 This condition will use AlwaysNotifyAboutContentSu
Bernhard Bauer 2017/01/06 13:26:59 Yes, but my point was, in the third case (if the a
sfiera 2017/01/06 15:39:52 Oh, I see. Yes, this is the intended behavior. The
+ if (category.IsKnownCategory(KnownCategories::ARTICLES) &&
+ suggestions.size()) {
Bernhard Bauer 2017/01/05 17:31:17 Maybe use !suggestions.empty()?
sfiera 2017/01/05 19:14:37 Done.
+ return &suggestions[0];
+ }
+ return nullptr;
+ }
+
+ for (const ContentSuggestion& suggestion : suggestions) {
+ if (suggestion.notification_extra()) {
+ return &suggestion;
+ }
+ }
+ return nullptr;
+ }
+
void ImageFetched(const ContentSuggestion::ID& id,
const GURL& url,
const base::string16& title,
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698