OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_H_ | 5 #ifndef COMPONENTS_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_H_ |
6 #define COMPONENTS_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_H_ | 6 #define COMPONENTS_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include <map> | 10 #include <map> |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 // for any reason, see |GetCategoryStatus()|. | 85 // for any reason, see |GetCategoryStatus()|. |
86 const std::vector<ContentSuggestion>& GetSuggestionsForCategory( | 86 const std::vector<ContentSuggestion>& GetSuggestionsForCategory( |
87 ContentSuggestionsCategory category) const; | 87 ContentSuggestionsCategory category) const; |
88 | 88 |
89 // Fetches the image for the suggestion with the given |suggestion_id| and | 89 // Fetches the image for the suggestion with the given |suggestion_id| and |
90 // runs the |callback|. If that suggestion doesn't exist or the fetch fails, | 90 // runs the |callback|. If that suggestion doesn't exist or the fetch fails, |
91 // the callback gets an empty image. | 91 // the callback gets an empty image. |
92 void FetchSuggestionImage(const std::string& suggestion_id, | 92 void FetchSuggestionImage(const std::string& suggestion_id, |
93 const ImageFetchedCallback& callback); | 93 const ImageFetchedCallback& callback); |
94 | 94 |
95 // Discards the suggestion with the given |suggestion_id|, if it exists. | 95 // Dismisses the suggestion with the given |suggestion_id|, if it exists. |
96 // This will not trigger an update through the observers. | 96 // This will not trigger an update through the observers. |
97 void DiscardSuggestion(const std::string& suggestion_id); | 97 void DismissSuggestion(const std::string& suggestion_id); |
98 | 98 |
99 // Observer accessors. | 99 // Observer accessors. |
100 void AddObserver(Observer* observer); | 100 void AddObserver(Observer* observer); |
101 void RemoveObserver(Observer* observer); | 101 void RemoveObserver(Observer* observer); |
102 | 102 |
103 // Registers a new ContentSuggestionsProvider. It must be ensured that at most | 103 // Registers a new ContentSuggestionsProvider. It must be ensured that at most |
104 // one provider is registered for every category and that this method is | 104 // one provider is registered for every category and that this method is |
105 // called only once per provider. | 105 // called only once per provider. |
106 void RegisterProvider(ContentSuggestionsProvider* provider); | 106 void RegisterProvider(ContentSuggestionsProvider* provider); |
107 | 107 |
108 // Only for debugging use through the internals page. | 108 // Only for debugging use through the internals page. |
109 // Removes all suggestions from all caches or internal stores in all | 109 // Removes all suggestions from all caches or internal stores in all |
110 // providers. It does, however, not remove any suggestions from the provider's | 110 // providers. It does, however, not remove any suggestions from the provider's |
111 // sources, so if their configuration hasn't changed, they should return the | 111 // sources, so if their configuration hasn't changed, they should return the |
112 // same results when they fetch the next time. In particular, calling this | 112 // same results when they fetch the next time. In particular, calling this |
113 // method will not mark any suggestions as discarded. | 113 // method will not mark any suggestions as dismissed. |
114 void ClearCachedSuggestionsForDebugging(); | 114 void ClearCachedSuggestionsForDebugging(); |
115 | 115 |
116 // Only for debugging use through the internals page. Some providers | 116 // Only for debugging use through the internals page. Some providers |
117 // internally store a list of discarded suggestions to prevent them from | 117 // internally store a list of dismissed suggestions to prevent them from |
118 // reappearing. This function clears all such lists in all providers, making | 118 // reappearing. This function clears all such lists in all providers, making |
119 // discarded suggestions reappear (only for certain providers). | 119 // dismissed suggestions reappear (only for certain providers). |
120 void ClearDiscardedSuggestionsForDebugging(); | 120 void ClearDismissedSuggestionsForDebugging(); |
121 | 121 |
122 private: | 122 private: |
123 friend class ContentSuggestionsServiceTest; | 123 friend class ContentSuggestionsServiceTest; |
124 | 124 |
125 // Implementation of ContentSuggestionsProvider::Observer. | 125 // Implementation of ContentSuggestionsProvider::Observer. |
126 void OnNewSuggestions(ContentSuggestionsCategory changed_category, | 126 void OnNewSuggestions(ContentSuggestionsCategory changed_category, |
127 std::vector<ContentSuggestion> suggestions) override; | 127 std::vector<ContentSuggestion> suggestions) override; |
128 void OnCategoryStatusChanged( | 128 void OnCategoryStatusChanged( |
129 ContentSuggestionsCategory changed_category, | 129 ContentSuggestionsCategory changed_category, |
130 ContentSuggestionsCategoryStatus new_status) override; | 130 ContentSuggestionsCategoryStatus new_status) override; |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
165 base::ObserverList<Observer> observers_; | 165 base::ObserverList<Observer> observers_; |
166 | 166 |
167 const std::vector<ContentSuggestion> no_suggestions_; | 167 const std::vector<ContentSuggestion> no_suggestions_; |
168 | 168 |
169 DISALLOW_COPY_AND_ASSIGN(ContentSuggestionsService); | 169 DISALLOW_COPY_AND_ASSIGN(ContentSuggestionsService); |
170 }; | 170 }; |
171 | 171 |
172 } // namespace ntp_snippets | 172 } // namespace ntp_snippets |
173 | 173 |
174 #endif // COMPONENTS_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_H_ | 174 #endif // COMPONENTS_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_H_ |
OLD | NEW |