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

Unified Diff: components/ntp_snippets/ntp_snippets_service.h

Issue 2255783002: Support server categories in NTPSnippetsService. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sync Created 4 years, 4 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: components/ntp_snippets/ntp_snippets_service.h
diff --git a/components/ntp_snippets/ntp_snippets_service.h b/components/ntp_snippets/ntp_snippets_service.h
index 7e76430fe23632ee0640ac717743951fb1cb2f0c..9e2f513b15986962308eb589dbb48b1fd0c7de8f 100644
--- a/components/ntp_snippets/ntp_snippets_service.h
+++ b/components/ntp_snippets/ntp_snippets_service.h
@@ -136,7 +136,7 @@ class NTPSnippetsService : public image_fetcher::ImageFetcherDelegate,
void DismissSuggestion(const std::string& suggestion_id) override;
void FetchSuggestionImage(const std::string& suggestion_id,
const ImageFetchedCallback& callback) override;
- void ClearCachedSuggestionsForDebugging(Category category) override;
+ void ClearCachedSuggestionsForDebugging(Category category_id) override;
Marc Treib 2016/08/22 15:06:47 ?
sfiera 2016/08/24 14:35:57 Done.
std::vector<ContentSuggestion> GetDismissedSuggestionsForDebugging(
Category category) override;
void ClearDismissedSuggestionsForDebugging(Category category) override;
@@ -148,8 +148,8 @@ class NTPSnippetsService : public image_fetcher::ImageFetcherDelegate,
static int GetMaxSnippetCountForTesting();
// Available snippets, only for unit tests.
- const NTPSnippet::PtrVector& GetSnippetsForTesting() const {
- return snippets_;
+ const NTPSnippet::PtrVector& GetSnippetsForTesting(Category category) const {
+ return categories_.find(category)->second.snippets;
}
private:
@@ -208,28 +208,28 @@ class NTPSnippetsService : public image_fetcher::ImageFetcherDelegate,
void OnFetchFinished(NTPSnippetsFetcher::OptionalSnippets snippets);
// Merges newly available snippets with the previously available list.
- void MergeSnippets(NTPSnippet::PtrVector new_snippets);
+ void MergeSnippets(Category category, NTPSnippet::PtrVector new_snippets);
std::set<std::string> GetSnippetHostsFromPrefs() const;
void StoreSnippetHostsToPrefs(const std::set<std::string>& hosts);
// Removes the expired snippets (including dismissed) from the service and the
// database, and schedules another pass for the next expiration.
- void ClearExpiredSnippets();
+ void ClearExpiredSnippets(Category category);
// Completes the initialization phase of the service, registering the last
// observers. This is done after construction, once the database is loaded.
void FinishInitialization();
void OnSnippetImageFetchedFromDatabase(const ImageFetchedCallback& callback,
- const std::string& snippet_id,
+ const std::string& suggestion_id,
std::string data);
void OnSnippetImageDecodedFromDatabase(const ImageFetchedCallback& callback,
- const std::string& snippet_id,
+ const std::string& suggestion_id,
const gfx::Image& image);
- void FetchSnippetImageFromNetwork(const std::string& snippet_id,
+ void FetchSnippetImageFromNetwork(const std::string& suggestion_id,
const ImageFetchedCallback& callback);
void OnSnippetImageDecodedFromNetwork(const ImageFetchedCallback& callback,
@@ -244,7 +244,7 @@ class NTPSnippetsService : public image_fetcher::ImageFetcherDelegate,
// Verifies state transitions (see |State|'s documentation) and applies them.
// Also updates the provider status. Does nothing except updating the provider
// status if called with the current state.
- void EnterState(State state, CategoryStatus status);
+ void EnterState(State state);
// Enables the service and triggers a fetch if required. Do not call directly,
// use |EnterState| instead.
@@ -261,24 +261,30 @@ class NTPSnippetsService : public image_fetcher::ImageFetcherDelegate,
// the observers.
void NotifyNewSuggestions();
- // Updates the internal status |category_status_| and notifies the content
- // suggestions observer if it changed.
- void UpdateCategoryStatus(CategoryStatus status);
+ // Updates the internal status for |category| to |category_status_| and
+ // notifies the content suggestions observer if it changed.
+ void UpdateCategoryStatus(Category category, CategoryStatus status);
+ void UpdateAllCategoryStatus(CategoryStatus status);
Marc Treib 2016/08/22 15:06:47 Add comment?
sfiera 2016/08/24 14:35:57 Done.
State state_;
- CategoryStatus category_status_;
-
PrefService* pref_service_;
suggestions::SuggestionsService* suggestions_service_;
- // All current suggestions (i.e. not dismissed ones).
- NTPSnippet::PtrVector snippets_;
+ const Category articles_category_;
- // Suggestions that the user dismissed. We keep these around until they expire
- // so we won't re-add them on the next fetch.
- NTPSnippet::PtrVector dismissed_snippets_;
+ struct CategoryContent {
+ CategoryStatus status = CategoryStatus::INITIALIZING;
+
+ // All current suggestions (i.e. not dismissed ones).
+ NTPSnippet::PtrVector snippets;
+
+ // Suggestions that the user dismissed. We keep these around until they
+ // expire so we won't re-add them on the next fetch.
+ NTPSnippet::PtrVector dismissed;
+ };
+ std::map<Category, CategoryContent, Category::CompareByID> categories_;
// The ISO 639-1 code of the language used by the application.
const std::string application_language_code_;
@@ -312,8 +318,6 @@ class NTPSnippetsService : public image_fetcher::ImageFetcherDelegate,
// The fetch will be executed after the database load finishes.
bool fetch_after_load_;
- const Category provided_category_;
-
// Request throttler for limiting requests to thumbnail images.
RequestThrottler thumbnail_requests_throttler_;

Powered by Google App Engine
This is Rietveld 408576698