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

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

Issue 2317993004: Move OnURLsDeleted from NTPSnippetsService to ContentSuggestionsService (Closed)
Patch Set: Created 4 years, 3 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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_NTP_SNIPPETS_SERVICE_H_ 5 #ifndef COMPONENTS_NTP_SNIPPETS_NTP_SNIPPETS_SERVICE_H_
6 #define COMPONENTS_NTP_SNIPPETS_NTP_SNIPPETS_SERVICE_H_ 6 #define COMPONENTS_NTP_SNIPPETS_NTP_SNIPPETS_SERVICE_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <memory> 10 #include <memory>
11 #include <set> 11 #include <set>
12 #include <string> 12 #include <string>
13 #include <vector> 13 #include <vector>
14 14
15 #include "base/callback_forward.h" 15 #include "base/callback_forward.h"
16 #include "base/gtest_prod_util.h" 16 #include "base/gtest_prod_util.h"
17 #include "base/macros.h" 17 #include "base/macros.h"
18 #include "base/scoped_observer.h" 18 #include "base/scoped_observer.h"
19 #include "base/timer/timer.h" 19 #include "base/timer/timer.h"
20 #include "components/history/core/browser/history_service_observer.h"
21 #include "components/image_fetcher/image_fetcher_delegate.h" 20 #include "components/image_fetcher/image_fetcher_delegate.h"
22 #include "components/ntp_snippets/category.h" 21 #include "components/ntp_snippets/category.h"
23 #include "components/ntp_snippets/category_factory.h" 22 #include "components/ntp_snippets/category_factory.h"
24 #include "components/ntp_snippets/category_status.h" 23 #include "components/ntp_snippets/category_status.h"
25 #include "components/ntp_snippets/content_suggestion.h" 24 #include "components/ntp_snippets/content_suggestion.h"
26 #include "components/ntp_snippets/content_suggestions_provider.h" 25 #include "components/ntp_snippets/content_suggestions_provider.h"
27 #include "components/ntp_snippets/ntp_snippet.h" 26 #include "components/ntp_snippets/ntp_snippet.h"
28 #include "components/ntp_snippets/ntp_snippets_fetcher.h" 27 #include "components/ntp_snippets/ntp_snippets_fetcher.h"
29 #include "components/ntp_snippets/ntp_snippets_scheduler.h" 28 #include "components/ntp_snippets/ntp_snippets_scheduler.h"
30 #include "components/ntp_snippets/ntp_snippets_status_service.h" 29 #include "components/ntp_snippets/ntp_snippets_status_service.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 // provides them as content suggestions. 66 // provides them as content suggestions.
68 // TODO(pke): Rename this service to ArticleSuggestionsProvider and move to 67 // TODO(pke): Rename this service to ArticleSuggestionsProvider and move to
69 // a subdirectory. 68 // a subdirectory.
70 // TODO(jkrcal): this class grows really, really large. The fact that 69 // TODO(jkrcal): this class grows really, really large. The fact that
71 // NTPSnippetService also implements ImageFetcherDelegate adds unnecessary 70 // NTPSnippetService also implements ImageFetcherDelegate adds unnecessary
72 // complexity (and after all the Service is conceptually not an 71 // complexity (and after all the Service is conceptually not an
73 // ImagerFetcherDeletage ;-)). Instead, the cleaner solution would be to define 72 // ImagerFetcherDeletage ;-)). Instead, the cleaner solution would be to define
74 // a CachedImageFetcher class that handles the caching aspects and looks like an 73 // a CachedImageFetcher class that handles the caching aspects and looks like an
75 // image fetcher to the NTPSnippetService. 74 // image fetcher to the NTPSnippetService.
76 class NTPSnippetsService : public ContentSuggestionsProvider, 75 class NTPSnippetsService : public ContentSuggestionsProvider,
77 public image_fetcher::ImageFetcherDelegate, 76 public image_fetcher::ImageFetcherDelegate {
78 public history::HistoryServiceObserver {
79 public: 77 public:
80 // |application_language_code| should be a ISO 639-1 compliant string, e.g. 78 // |application_language_code| should be a ISO 639-1 compliant string, e.g.
81 // 'en' or 'en-US'. Note that this code should only specify the language, not 79 // 'en' or 'en-US'. Note that this code should only specify the language, not
82 // the locale, so 'en_US' (English language with US locale) and 'en-GB_US' 80 // the locale, so 'en_US' (English language with US locale) and 'en-GB_US'
83 // (British English person in the US) are not language codes. 81 // (British English person in the US) are not language codes.
84 NTPSnippetsService(Observer* observer, 82 NTPSnippetsService(Observer* observer,
85 CategoryFactory* category_factory, 83 CategoryFactory* category_factory,
86 PrefService* pref_service, 84 PrefService* pref_service,
87 history::HistoryService* history_service,
88 suggestions::SuggestionsService* suggestions_service, 85 suggestions::SuggestionsService* suggestions_service,
89 const std::string& application_language_code, 86 const std::string& application_language_code,
90 NTPSnippetsScheduler* scheduler, 87 NTPSnippetsScheduler* scheduler,
91 std::unique_ptr<NTPSnippetsFetcher> snippets_fetcher, 88 std::unique_ptr<NTPSnippetsFetcher> snippets_fetcher,
92 std::unique_ptr<image_fetcher::ImageFetcher> image_fetcher, 89 std::unique_ptr<image_fetcher::ImageFetcher> image_fetcher,
93 std::unique_ptr<image_fetcher::ImageDecoder> image_decoder, 90 std::unique_ptr<image_fetcher::ImageDecoder> image_decoder,
94 std::unique_ptr<NTPSnippetsDatabase> database, 91 std::unique_ptr<NTPSnippetsDatabase> database,
95 std::unique_ptr<NTPSnippetsStatusService> status_service); 92 std::unique_ptr<NTPSnippetsStatusService> status_service);
96 93
97 ~NTPSnippetsService() override; 94 ~NTPSnippetsService() override;
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 // - READY: when the global Chrome state changes, for example after 197 // - READY: when the global Chrome state changes, for example after
201 // |OnStateChanged| is called and sync is enabled. 198 // |OnStateChanged| is called and sync is enabled.
202 // - ERROR_OCCURRED: when an unrecoverable error occurred. 199 // - ERROR_OCCURRED: when an unrecoverable error occurred.
203 DISABLED, 200 DISABLED,
204 201
205 // The service or one of its dependencies encountered an unrecoverable error 202 // The service or one of its dependencies encountered an unrecoverable error
206 // and the service can't be used anymore. 203 // and the service can't be used anymore.
207 ERROR_OCCURRED 204 ERROR_OCCURRED
208 }; 205 };
209 206
210 // history::HistoryServiceObserver implementation.
211 void OnURLsDeleted(history::HistoryService* history_service,
212 bool all_history,
213 bool expired,
214 const history::URLRows& deleted_rows,
215 const std::set<GURL>& favicon_urls) override;
216 void HistoryServiceBeingDeleted(
217 history::HistoryService* history_service) override;
218
219 // image_fetcher::ImageFetcherDelegate implementation. 207 // image_fetcher::ImageFetcherDelegate implementation.
220 void OnImageDataFetched(const std::string& snippet_id, 208 void OnImageDataFetched(const std::string& snippet_id,
221 const std::string& image_data) override; 209 const std::string& image_data) override;
222 210
223 // Callbacks for the NTPSnippetsDatabase. 211 // Callbacks for the NTPSnippetsDatabase.
224 void OnDatabaseLoaded(NTPSnippet::PtrVector snippets); 212 void OnDatabaseLoaded(NTPSnippet::PtrVector snippets);
225 void OnDatabaseError(); 213 void OnDatabaseError();
226 214
227 // Callback for the SuggestionsService. 215 // Callback for the SuggestionsService.
228 void OnSuggestionsChanged(const suggestions::SuggestionsProfile& suggestions); 216 void OnSuggestionsChanged(const suggestions::SuggestionsProfile& suggestions);
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 // Suggestions that the user dismissed. We keep these around until they expire 293 // Suggestions that the user dismissed. We keep these around until they expire
306 // so we won't re-add them on the next fetch. 294 // so we won't re-add them on the next fetch.
307 NTPSnippet::PtrVector dismissed_snippets_; 295 NTPSnippet::PtrVector dismissed_snippets_;
308 296
309 // The ISO 639-1 code of the language used by the application. 297 // The ISO 639-1 code of the language used by the application.
310 const std::string application_language_code_; 298 const std::string application_language_code_;
311 299
312 // Scheduler for fetching snippets. Not owned. 300 // Scheduler for fetching snippets. Not owned.
313 NTPSnippetsScheduler* scheduler_; 301 NTPSnippetsScheduler* scheduler_;
314 302
315 // Observer for the HistoryService. We clear all cached suggestions when
316 // history gets deleted.
317 ScopedObserver<history::HistoryService, history::HistoryServiceObserver>
318 history_service_observer_;
319
320 // The subscription to the SuggestionsService. When the suggestions change, 303 // The subscription to the SuggestionsService. When the suggestions change,
321 // SuggestionsService will call |OnSuggestionsChanged|, which triggers an 304 // SuggestionsService will call |OnSuggestionsChanged|, which triggers an
322 // update to the set of snippets. 305 // update to the set of snippets.
323 using SuggestionsSubscription = 306 using SuggestionsSubscription =
324 suggestions::SuggestionsService::ResponseCallbackList::Subscription; 307 suggestions::SuggestionsService::ResponseCallbackList::Subscription;
325 std::unique_ptr<SuggestionsSubscription> suggestions_service_subscription_; 308 std::unique_ptr<SuggestionsSubscription> suggestions_service_subscription_;
326 309
327 // The snippets fetcher. 310 // The snippets fetcher.
328 std::unique_ptr<NTPSnippetsFetcher> snippets_fetcher_; 311 std::unique_ptr<NTPSnippetsFetcher> snippets_fetcher_;
329 312
(...skipping 21 matching lines...) Expand all
351 334
352 // Request throttler for limiting requests to thumbnail images. 335 // Request throttler for limiting requests to thumbnail images.
353 RequestThrottler thumbnail_requests_throttler_; 336 RequestThrottler thumbnail_requests_throttler_;
354 337
355 DISALLOW_COPY_AND_ASSIGN(NTPSnippetsService); 338 DISALLOW_COPY_AND_ASSIGN(NTPSnippetsService);
356 }; 339 };
357 340
358 } // namespace ntp_snippets 341 } // namespace ntp_snippets
359 342
360 #endif // COMPONENTS_NTP_SNIPPETS_NTP_SNIPPETS_SERVICE_H_ 343 #endif // COMPONENTS_NTP_SNIPPETS_NTP_SNIPPETS_SERVICE_H_
OLDNEW
« no previous file with comments | « components/ntp_snippets/content_suggestions_service_unittest.cc ('k') | components/ntp_snippets/ntp_snippets_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698