| Index: components/ntp_snippets/ntp_snippets_service.cc
|
| diff --git a/components/ntp_snippets/ntp_snippets_service.cc b/components/ntp_snippets/ntp_snippets_service.cc
|
| index a2cf72c8713c9943f2b19b92e1ee1fe5a8e6b008..6cd4eed5ddcde77ffe5c46bc1d044c8f54647932 100644
|
| --- a/components/ntp_snippets/ntp_snippets_service.cc
|
| +++ b/components/ntp_snippets/ntp_snippets_service.cc
|
| @@ -193,8 +193,9 @@ NTPSnippetsService::NTPSnippetsService(
|
| std::unique_ptr<ImageFetcher> image_fetcher,
|
| std::unique_ptr<ImageDecoder> image_decoder,
|
| std::unique_ptr<NTPSnippetsDatabase> database,
|
| - std::unique_ptr<NTPSnippetsStatusService> status_service)
|
| - : ContentSuggestionsProvider({ContentSuggestionsCategory::ARTICLES}),
|
| + std::unique_ptr<NTPSnippetsStatusService> status_service,
|
| + ContentSuggestionsCategoryFactory* category_factory)
|
| + : ContentSuggestionsProvider(category_factory),
|
| state_(State::NOT_INITED),
|
| category_status_(ContentSuggestionsCategoryStatus::INITIALIZING),
|
| pref_service_(pref_service),
|
| @@ -207,7 +208,9 @@ NTPSnippetsService::NTPSnippetsService(
|
| image_decoder_(std::move(image_decoder)),
|
| database_(std::move(database)),
|
| snippets_status_service_(std::move(status_service)),
|
| - fetch_after_load_(false) {
|
| + fetch_after_load_(false),
|
| + provided_category_(category_factory->FromKnownCategory(
|
| + KnownSuggestionsCategories::ARTICLES)) {
|
| // In some cases, don't even bother loading the database.
|
| if (!enabled) {
|
| EnterState(State::SHUT_DOWN,
|
| @@ -278,6 +281,11 @@ void NTPSnippetsService::RescheduleFetching() {
|
| }
|
| }
|
|
|
| +std::vector<ContentSuggestionsCategory>
|
| +NTPSnippetsService::provided_categories() {
|
| + return std::vector<ContentSuggestionsCategory>({provided_category_});
|
| +}
|
| +
|
| void NTPSnippetsService::FetchSuggestionImage(
|
| const std::string& suggestion_id,
|
| const ImageFetchedCallback& callback) {
|
| @@ -351,7 +359,7 @@ void NTPSnippetsService::SetObserver(Observer* observer) {
|
|
|
| ContentSuggestionsCategoryStatus NTPSnippetsService::GetCategoryStatus(
|
| ContentSuggestionsCategory category) {
|
| - DCHECK_EQ(ContentSuggestionsCategory::ARTICLES, category);
|
| + DCHECK_EQ(KnownSuggestionsCategories::ARTICLES, category);
|
| return category_status_;
|
| }
|
|
|
| @@ -624,8 +632,7 @@ void NTPSnippetsService::OnSnippetImageDecoded(
|
| const ImageFetchedCallback& callback,
|
| const gfx::Image& image) {
|
| if (!image.IsEmpty()) {
|
| - callback.Run(MakeUniqueID(ContentSuggestionsCategory::ARTICLES, snippet_id),
|
| - image);
|
| + callback.Run(MakeUniqueID(provided_category_, snippet_id), image);
|
| return;
|
| }
|
|
|
| @@ -644,8 +651,7 @@ void NTPSnippetsService::FetchSnippetImageFromNetwork(
|
| return snippet->id() == snippet_id;
|
| });
|
| if (it == snippets_.end()) {
|
| - callback.Run(MakeUniqueID(ContentSuggestionsCategory::ARTICLES, snippet_id),
|
| - gfx::Image());
|
| + callback.Run(MakeUniqueID(provided_category_, snippet_id), gfx::Image());
|
| return;
|
| }
|
|
|
| @@ -811,7 +817,7 @@ void NTPSnippetsService::NotifyNewSuggestions() {
|
| if (!snippet->is_complete())
|
| continue;
|
| ContentSuggestion suggestion(
|
| - MakeUniqueID(ContentSuggestionsCategory::ARTICLES, snippet->id()),
|
| + MakeUniqueID(provided_category_, snippet->id()),
|
| snippet->best_source().url);
|
| suggestion.set_amp_url(snippet->best_source().amp_url);
|
| suggestion.set_title(snippet->title());
|
| @@ -821,14 +827,12 @@ void NTPSnippetsService::NotifyNewSuggestions() {
|
| suggestion.set_score(snippet->score());
|
| result.emplace_back(std::move(suggestion));
|
| }
|
| - observer_->OnNewSuggestions(ContentSuggestionsCategory::ARTICLES,
|
| - std::move(result));
|
| + observer_->OnNewSuggestions(provided_category_, std::move(result));
|
| }
|
|
|
| void NTPSnippetsService::NotifyCategoryStatusChanged() {
|
| if (observer_) {
|
| - observer_->OnCategoryStatusChanged(ContentSuggestionsCategory::ARTICLES,
|
| - category_status_);
|
| + observer_->OnCategoryStatusChanged(provided_category_, category_status_);
|
| }
|
| }
|
|
|
|
|