Chromium Code Reviews| Index: components/ntp_snippets/bookmarks/bookmark_suggestions_provider.cc |
| diff --git a/components/ntp_snippets/bookmarks/bookmark_suggestions_provider.cc b/components/ntp_snippets/bookmarks/bookmark_suggestions_provider.cc |
| index 70752b421c8a03c2c7585e6c49f1fd6d2daf912e..8af3fb5bf5c66ba0a0afc957888c96d452125de7 100644 |
| --- a/components/ntp_snippets/bookmarks/bookmark_suggestions_provider.cc |
| +++ b/components/ntp_snippets/bookmarks/bookmark_suggestions_provider.cc |
| @@ -67,8 +67,9 @@ CategoryStatus BookmarkSuggestionsProvider::GetCategoryStatus( |
| void BookmarkSuggestionsProvider::DismissSuggestion( |
| const std::string& suggestion_id) { |
| - // TODO(jkrcal): Implement blacklisting bookmarks until they are next visited. |
| - // Then also implement ClearDismissedSuggestionsForDebugging. |
| + DCHECK(bookmark_model_->loaded()); |
| + GURL url(GetWithinCategoryIDFromUniqueID(suggestion_id)); |
| + MarkBookmarksDismissed(bookmark_model_, url); |
| } |
| void BookmarkSuggestionsProvider::FetchSuggestionImage( |
| @@ -88,14 +89,22 @@ std::vector<ContentSuggestion> |
| BookmarkSuggestionsProvider::GetDismissedSuggestionsForDebugging( |
| Category category) { |
| DCHECK_EQ(category, provided_category_); |
| - // TODO(pke): Implement when discarded suggestions are supported. |
| - return std::vector<ContentSuggestion>(); |
| + std::vector<const BookmarkNode*> bookmarks = |
| + GetDismissedBookmarksForDebugging(bookmark_model_); |
| + |
| + std::vector<ContentSuggestion> suggestions; |
| + for (const BookmarkNode* bookmark : bookmarks) { |
|
Marc Treib
2016/08/08 14:03:59
nit: braces not required
Philipp Keck
2016/08/08 14:20:11
Done.
|
| + suggestions.emplace_back(ConvertBookmark(bookmark)); |
| + } |
| + return suggestions; |
| } |
| void BookmarkSuggestionsProvider::ClearDismissedSuggestionsForDebugging( |
| Category category) { |
| DCHECK_EQ(category, provided_category_); |
| - // TODO(pke): Implement when discarded suggestions are supported. |
| + if (!bookmark_model_->loaded()) |
| + return; |
| + MarkAllBookmarksUndismissed(bookmark_model_); |
| } |
| void BookmarkSuggestionsProvider::BookmarkModelLoaded( |
| @@ -128,6 +137,19 @@ void BookmarkSuggestionsProvider::BookmarkMetaInfoChanged( |
| FetchBookmarks(); |
| } |
| +ContentSuggestion BookmarkSuggestionsProvider::ConvertBookmark( |
| + const BookmarkNode* bookmark) { |
| + ContentSuggestion suggestion( |
| + MakeUniqueID(provided_category_, bookmark->url().spec()), |
| + bookmark->url()); |
| + |
| + suggestion.set_title(bookmark->GetTitle()); |
| + suggestion.set_snippet_text(base::string16()); |
| + suggestion.set_publish_date(GetLastVisitDateForBookmark(bookmark)); |
| + suggestion.set_publisher_name(base::UTF8ToUTF16(bookmark->url().host())); |
| + return suggestion; |
| +} |
| + |
| void BookmarkSuggestionsProvider::FetchBookmarksInternal() { |
| DCHECK(bookmark_model_->loaded()); |
| @@ -138,15 +160,7 @@ void BookmarkSuggestionsProvider::FetchBookmarksInternal() { |
| std::vector<ContentSuggestion> suggestions; |
| for (const BookmarkNode* bookmark : bookmarks) { |
| - ContentSuggestion suggestion( |
| - MakeUniqueID(provided_category_, bookmark->url().spec()), |
| - bookmark->url()); |
| - |
| - suggestion.set_title(bookmark->GetTitle()); |
| - suggestion.set_snippet_text(base::string16()); |
| - suggestion.set_publish_date(GetLastVisitDateForBookmark(bookmark)); |
| - suggestion.set_publisher_name(base::UTF8ToUTF16(bookmark->url().host())); |
| - suggestions.emplace_back(std::move(suggestion)); |
| + suggestions.emplace_back(ConvertBookmark(bookmark)); |
| } |
| if (suggestions.empty()) |