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

Side by Side Diff: components/ntp_snippets/bookmarks/bookmark_suggestions_provider.h

Issue 2190583002: Add bookmark provider for content suggestions (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments #2 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef COMPONENTS_NTP_SNIPPETS_BOOKMARKS_BOOKMARK_SUGGESTIONS_PROVIDER_H_
6 #define COMPONENTS_NTP_SNIPPETS_BOOKMARKS_BOOKMARK_SUGGESTIONS_PROVIDER_H_
7
8 #include <set>
9 #include <string>
10
11 #include "components/bookmarks/browser/bookmark_model_observer.h"
12 #include "components/keyed_service/core/keyed_service.h"
13 #include "components/ntp_snippets/content_suggestions_category.h"
14 #include "components/ntp_snippets/content_suggestions_category_status.h"
15 #include "components/ntp_snippets/content_suggestions_provider.h"
16
17 namespace gfx {
18 class Image;
19 }
20
21 namespace ntp_snippets {
22
23 // Provides content suggestions from the bookmarks model.
24 class BookmarkSuggestionsProvider : public KeyedService,
25 public ContentSuggestionsProvider,
26 public bookmarks::BookmarkModelObserver {
27 public:
28 explicit BookmarkSuggestionsProvider(
29 bookmarks::BookmarkModel* bookmark_model);
30 ~BookmarkSuggestionsProvider() override;
31
32 // Inherited from KeyedService.
33 void Shutdown() override;
34
35 private:
36 // ContentSuggestionsProvider implementation.
37 void SetObserver(ContentSuggestionsProvider::Observer* observer) override;
38 ContentSuggestionsCategoryStatus GetCategoryStatus(
39 ContentSuggestionsCategory category) override;
40 void DismissSuggestion(const std::string& suggestion_id) override;
41 void FetchSuggestionImage(const std::string& suggestion_id,
42 const ImageFetchedCallback& callback) override;
43 void ClearCachedSuggestionsForDebugging() override;
44 void ClearDismissedSuggestionsForDebugging() override;
45
46 // bookmarks::BookmarkModelObserver implementation.
47 void BookmarkModelLoaded(bookmarks::BookmarkModel* model,
48 bool ids_reassigned) override;
49 void OnWillChangeBookmarkMetaInfo(
50 bookmarks::BookmarkModel* model,
51 const bookmarks::BookmarkNode* node) override;
52 void BookmarkMetaInfoChanged(bookmarks::BookmarkModel* model,
53 const bookmarks::BookmarkNode* node) override;
54
55 void BookmarkNodeMoved(bookmarks::BookmarkModel* model,
56 const bookmarks::BookmarkNode* old_parent,
57 int old_index,
58 const bookmarks::BookmarkNode* new_parent,
59 int new_index) override {}
60 void BookmarkNodeAdded(bookmarks::BookmarkModel* model,
61 const bookmarks::BookmarkNode* parent,
62 int index) override {}
63 void BookmarkNodeRemoved(
64 bookmarks::BookmarkModel* model,
65 const bookmarks::BookmarkNode* parent,
66 int old_index,
67 const bookmarks::BookmarkNode* node,
68 const std::set<GURL>& no_longer_bookmarked) override {}
69 void BookmarkNodeChanged(bookmarks::BookmarkModel* model,
70 const bookmarks::BookmarkNode* node) override {}
71 void BookmarkNodeFaviconChanged(
72 bookmarks::BookmarkModel* model,
73 const bookmarks::BookmarkNode* node) override {}
74 void BookmarkNodeChildrenReordered(
75 bookmarks::BookmarkModel* model,
76 const bookmarks::BookmarkNode* node) override {}
77 void BookmarkAllUserNodesRemoved(
78 bookmarks::BookmarkModel* model,
79 const std::set<GURL>& removed_urls) override {}
80
81 // The actual method to fetch bookmarks - follows each call to FetchBookmarks
82 // but not sooner than the BookmarkModel gets loaded.
83 void FetchBookmarksInternal();
84
85 // Queries the BookmarkModel for recently visited bookmarks and pushes the
86 // results to the ContentSuggestionService. The actual fetching does not
87 // happen before the Bookmark model gets loaded.
88 void FetchBookmarks();
89
90 // Updates the |category_status_| and notifies the |observer_|, if necessary.
91 void NotifyStatusChanged(ContentSuggestionsCategoryStatus new_status);
92
93 ContentSuggestionsCategoryStatus category_status_;
94 ContentSuggestionsProvider::Observer* observer_;
95 bookmarks::BookmarkModel* bookmark_model_;
96 bool fetch_requested_;
97
98 base::Time node_to_change_last_visit_date_;
99 base::Time end_of_list_last_visit_date_;
100
101 DISALLOW_COPY_AND_ASSIGN(BookmarkSuggestionsProvider);
102 };
103
104 } // namespace ntp_snippets
105
106 #endif // COMPONENTS_NTP_SNIPPETS_BOOKMARKS_BOOKMARK_SUGGESTIONS_PROVIDER_H_
OLDNEW
« no previous file with comments | « components/ntp_snippets/BUILD.gn ('k') | components/ntp_snippets/bookmarks/bookmark_suggestions_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698