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

Side by Side Diff: components/ntp_snippets/content_suggestions_service.h

Issue 2244793002: Remove deleted offline page suggestions from opened NTPs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adjust MockContentSuggestionsProvider 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
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 <map> 8 #include <map>
9 #include <memory> 9 #include <memory>
10 #include <string> 10 #include <string>
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 virtual void OnNewSuggestions(Category category) = 0; 43 virtual void OnNewSuggestions(Category category) = 0;
44 44
45 // Fired when the status of a suggestions category changed. When the status 45 // Fired when the status of a suggestions category changed. When the status
46 // changes to an unavailable status, the suggestions of the respective 46 // changes to an unavailable status, the suggestions of the respective
47 // category have been invalidated, which means that they must no longer be 47 // category have been invalidated, which means that they must no longer be
48 // displayed to the user. The UI must immediately clear any suggestions of 48 // displayed to the user. The UI must immediately clear any suggestions of
49 // that category. 49 // that category.
50 virtual void OnCategoryStatusChanged(Category category, 50 virtual void OnCategoryStatusChanged(Category category,
51 CategoryStatus new_status) = 0; 51 CategoryStatus new_status) = 0;
52 52
53 // Fired when a suggestion has been invalidated. The UI must immediately
54 // clear the suggestion even from open NTPs. Invalidation happens, for
55 // example, when the content that the suggestion refers to is gone.
56 // Note that this event may be fired even if the corresponding |category| is
57 // not currently AVAILABLE, because open UIs may still be showing the
58 // suggestion that is to be removed. This event may also be fired for
59 // |suggestion_id|s that never existed and should be ignored in that case.
60 virtual void OnSuggestionInvalidated(Category category,
61 const std::string& suggestion_id) = 0;
62
53 // Sent when the service is shutting down. After the service has shut down, 63 // Sent when the service is shutting down. After the service has shut down,
54 // it will not provide any data anymore, though calling the getters is still 64 // it will not provide any data anymore, though calling the getters is still
55 // safe. 65 // safe.
56 virtual void ContentSuggestionsServiceShutdown() = 0; 66 virtual void ContentSuggestionsServiceShutdown() = 0;
57 67
58 protected: 68 protected:
59 virtual ~Observer() {} 69 virtual ~Observer() {}
60 }; 70 };
61 71
62 enum State { 72 enum State {
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 private: 158 private:
149 friend class ContentSuggestionsServiceTest; 159 friend class ContentSuggestionsServiceTest;
150 160
151 // Implementation of ContentSuggestionsProvider::Observer. 161 // Implementation of ContentSuggestionsProvider::Observer.
152 void OnNewSuggestions(ContentSuggestionsProvider* provider, 162 void OnNewSuggestions(ContentSuggestionsProvider* provider,
153 Category category, 163 Category category,
154 std::vector<ContentSuggestion> suggestions) override; 164 std::vector<ContentSuggestion> suggestions) override;
155 void OnCategoryStatusChanged(ContentSuggestionsProvider* provider, 165 void OnCategoryStatusChanged(ContentSuggestionsProvider* provider,
156 Category category, 166 Category category,
157 CategoryStatus new_status) override; 167 CategoryStatus new_status) override;
168 void OnSuggestionInvalidated(ContentSuggestionsProvider* provider,
169 Category category,
170 const std::string& suggestion_id) override;
158 171
159 // Registers the given |provider| for the given |category|, unless it is 172 // Registers the given |provider| for the given |category|, unless it is
160 // already registered. Returns true if the category was newly registered or 173 // already registered. Returns true if the category was newly registered or
161 // false if it was present before. 174 // false if it was present before.
162 bool RegisterCategoryIfRequired(ContentSuggestionsProvider* provider, 175 bool RegisterCategoryIfRequired(ContentSuggestionsProvider* provider,
163 Category category); 176 Category category);
164 177
178 // Removes a suggestion from the local stores |id_category_map_| and
179 // |suggestions_by_category_|, if it exists. Returns true if a suggestion was
180 // removed.
181 bool RemoveSuggestionByID(Category category,
182 const std::string& suggestion_id);
183
165 // Fires the OnCategoryStatusChanged event for the given |category|. 184 // Fires the OnCategoryStatusChanged event for the given |category|.
166 void NotifyCategoryStatusChanged(Category category); 185 void NotifyCategoryStatusChanged(Category category);
167 186
168 // Whether the content suggestions feature is enabled. 187 // Whether the content suggestions feature is enabled.
169 State state_; 188 State state_;
170 189
171 // Provides new and existing categories and an order for them. 190 // Provides new and existing categories and an order for them.
172 CategoryFactory category_factory_; 191 CategoryFactory category_factory_;
173 192
174 // All registered providers, owned by the service. 193 // All registered providers, owned by the service.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 // background fetching and debugging calls to it. If the NTPSnippetsService is 225 // background fetching and debugging calls to it. If the NTPSnippetsService is
207 // loaded, it is also present in |providers_|, otherwise this is a nullptr. 226 // loaded, it is also present in |providers_|, otherwise this is a nullptr.
208 NTPSnippetsService* ntp_snippets_service_; 227 NTPSnippetsService* ntp_snippets_service_;
209 228
210 DISALLOW_COPY_AND_ASSIGN(ContentSuggestionsService); 229 DISALLOW_COPY_AND_ASSIGN(ContentSuggestionsService);
211 }; 230 };
212 231
213 } // namespace ntp_snippets 232 } // namespace ntp_snippets
214 233
215 #endif // COMPONENTS_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_H_ 234 #endif // COMPONENTS_NTP_SNIPPETS_CONTENT_SUGGESTIONS_SERVICE_H_
OLDNEW
« no previous file with comments | « components/ntp_snippets/content_suggestions_provider.h ('k') | components/ntp_snippets/content_suggestions_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698