| Index: components/ntp_snippets/content_suggestions_service.cc
|
| diff --git a/components/ntp_snippets/content_suggestions_service.cc b/components/ntp_snippets/content_suggestions_service.cc
|
| index f141eabf19578f3f5eb5f8732a2d6df7a9045950..f52a9809d09dcae42dbad4cd9a62ff9598870423 100644
|
| --- a/components/ntp_snippets/content_suggestions_service.cc
|
| +++ b/components/ntp_snippets/content_suggestions_service.cc
|
| @@ -72,18 +72,17 @@ ContentSuggestionsService::GetSuggestionsForCategory(Category category) const {
|
| }
|
|
|
| void ContentSuggestionsService::FetchSuggestionImage(
|
| - const std::string& suggestion_id,
|
| + const ContentSuggestion::ID& suggestion_id,
|
| const ImageFetchedCallback& callback) {
|
| - Category category = category_factory_.GetCategoryFromUniqueID(suggestion_id);
|
| - if (!providers_by_category_.count(category)) {
|
| + if (!providers_by_category_.count(suggestion_id.category())) {
|
| LOG(WARNING) << "Requested image for suggestion " << suggestion_id
|
| - << " for unavailable category " << category;
|
| + << " for unavailable category " << suggestion_id.category();
|
| base::ThreadTaskRunnerHandle::Get()->PostTask(
|
| FROM_HERE, base::Bind(callback, gfx::Image()));
|
| return;
|
| }
|
| - providers_by_category_[category]->FetchSuggestionImage(suggestion_id,
|
| - callback);
|
| + providers_by_category_[suggestion_id.category()]->FetchSuggestionImage(
|
| + suggestion_id, callback);
|
| }
|
|
|
| void ContentSuggestionsService::ClearHistory(
|
| @@ -130,17 +129,17 @@ void ContentSuggestionsService::ClearDismissedSuggestionsForDebugging(
|
| }
|
|
|
| void ContentSuggestionsService::DismissSuggestion(
|
| - const std::string& suggestion_id) {
|
| - Category category = category_factory_.GetCategoryFromUniqueID(suggestion_id);
|
| - if (!providers_by_category_.count(category)) {
|
| + const ContentSuggestion::ID& suggestion_id) {
|
| + if (!providers_by_category_.count(suggestion_id.category())) {
|
| LOG(WARNING) << "Dismissed suggestion " << suggestion_id
|
| - << " for unavailable category " << category;
|
| + << " for unavailable category " << suggestion_id.category();
|
| return;
|
| }
|
| - providers_by_category_[category]->DismissSuggestion(suggestion_id);
|
| + providers_by_category_[suggestion_id.category()]->DismissSuggestion(
|
| + suggestion_id);
|
|
|
| // Remove the suggestion locally.
|
| - bool removed = RemoveSuggestionByID(category, suggestion_id);
|
| + bool removed = RemoveSuggestionByID(suggestion_id);
|
| DCHECK(removed) << "The dismissed suggestion " << suggestion_id
|
| << " has already been removed. Providers must not call"
|
| << " OnNewSuggestions in response to DismissSuggestion.";
|
| @@ -214,11 +213,10 @@ void ContentSuggestionsService::OnCategoryStatusChanged(
|
|
|
| void ContentSuggestionsService::OnSuggestionInvalidated(
|
| ContentSuggestionsProvider* provider,
|
| - Category category,
|
| - const std::string& suggestion_id) {
|
| - RemoveSuggestionByID(category, suggestion_id);
|
| + const ContentSuggestion::ID& suggestion_id) {
|
| + RemoveSuggestionByID(suggestion_id);
|
| FOR_EACH_OBSERVER(Observer, observers_,
|
| - OnSuggestionInvalidated(category, suggestion_id));
|
| + OnSuggestionInvalidated(suggestion_id));
|
| }
|
|
|
| // history::HistoryServiceObserver implementation.
|
| @@ -287,10 +285,9 @@ bool ContentSuggestionsService::RegisterCategoryIfRequired(
|
| }
|
|
|
| bool ContentSuggestionsService::RemoveSuggestionByID(
|
| - Category category,
|
| - const std::string& suggestion_id) {
|
| + const ContentSuggestion::ID& suggestion_id) {
|
| std::vector<ContentSuggestion>* suggestions =
|
| - &suggestions_by_category_[category];
|
| + &suggestions_by_category_[suggestion_id.category()];
|
| auto position =
|
| std::find_if(suggestions->begin(), suggestions->end(),
|
| [&suggestion_id](const ContentSuggestion& suggestion) {
|
| @@ -302,7 +299,7 @@ bool ContentSuggestionsService::RemoveSuggestionByID(
|
|
|
| // The positioning of the bookmarks category depends on whether it's empty.
|
| // TODO(treib): Remove this temporary hack, crbug.com/640568.
|
| - if (category.IsKnownCategory(KnownCategories::BOOKMARKS))
|
| + if (suggestion_id.category().IsKnownCategory(KnownCategories::BOOKMARKS))
|
| SortCategories();
|
|
|
| return true;
|
|
|