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

Unified Diff: chrome/browser/ntp_snippets/content_suggestions_service_factory.cc

Issue 2557363002: [NTP Snippets] Refactor background scheduling for remote suggestions (Closed)
Patch Set: Tim's comments and splitting RemoteSuggestionsProvider and RemoteSuggestionsProviderImpl Created 4 years 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ntp_snippets/content_suggestions_service_factory.cc
diff --git a/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc b/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc
index e2ed53fdddcd7750134784df4190572b784949a8..d2a499f17a93a0ff5b2a579db8b120d1e7dc757b 100644
--- a/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc
+++ b/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc
@@ -34,10 +34,11 @@
#include "components/ntp_snippets/features.h"
#include "components/ntp_snippets/ntp_snippets_constants.h"
#include "components/ntp_snippets/remote/ntp_snippets_fetcher.h"
-#include "components/ntp_snippets/remote/ntp_snippets_scheduler.h"
+#include "components/ntp_snippets/remote/persistent_scheduler.h"
#include "components/ntp_snippets/remote/remote_suggestions_database.h"
-#include "components/ntp_snippets/remote/remote_suggestions_provider.h"
+#include "components/ntp_snippets/remote/remote_suggestions_provider_impl.h"
#include "components/ntp_snippets/remote/remote_suggestions_status_service.h"
+#include "components/ntp_snippets/remote/scheduling_remote_suggestions_provider.h"
#include "components/ntp_snippets/sessions/foreign_sessions_suggestions_provider.h"
#include "components/ntp_snippets/sessions/tab_delegate_sync_adapter.h"
#include "components/prefs/pref_service.h"
@@ -79,10 +80,11 @@ using ntp_snippets::CategoryFactory;
using ntp_snippets::ContentSuggestionsService;
using ntp_snippets::ForeignSessionsSuggestionsProvider;
using ntp_snippets::NTPSnippetsFetcher;
-using ntp_snippets::NTPSnippetsScheduler;
+using ntp_snippets::PersistentScheduler;
using ntp_snippets::RemoteSuggestionsDatabase;
-using ntp_snippets::RemoteSuggestionsProvider;
+using ntp_snippets::RemoteSuggestionsProviderImpl;
using ntp_snippets::RemoteSuggestionsStatusService;
+using ntp_snippets::SchedulingRemoteSuggestionsProvider;
using ntp_snippets::TabDelegateSyncAdapter;
using suggestions::ImageDecoderImpl;
using syncer::SyncService;
@@ -153,10 +155,6 @@ void RegisterArticleProvider(SigninManagerBase* signin_manager,
content::BrowserContext::GetDefaultStoragePartition(profile)
->GetURLRequestContext();
- NTPSnippetsScheduler* scheduler = nullptr;
-#if defined(OS_ANDROID)
- scheduler = NTPSnippetsLauncher::Get();
-#endif // OS_ANDROID
base::FilePath database_dir(
profile->GetPath().Append(ntp_snippets::kDatabaseFolder));
scoped_refptr<base::SequencedTaskRunner> task_runner =
@@ -166,24 +164,35 @@ void RegisterArticleProvider(SigninManagerBase* signin_manager,
base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN);
bool is_stable_channel =
chrome::GetChannel() == version_info::Channel::STABLE;
- auto provider = base::MakeUnique<RemoteSuggestionsProvider>(
+ auto provider = base::MakeUnique<RemoteSuggestionsProviderImpl>(
service, service->category_factory(), pref_service,
- g_browser_process->GetApplicationLocale(), service->user_classifier(),
- scheduler, base::MakeUnique<NTPSnippetsFetcher>(
- signin_manager, token_service, request_context,
- pref_service, category_factory, language_model,
- base::Bind(&safe_json::SafeJsonParser::Parse),
- is_stable_channel ? google_apis::GetAPIKey()
- : google_apis::GetNonStableAPIKey(),
- service->user_classifier()),
+ g_browser_process->GetApplicationLocale(),
+ base::MakeUnique<NTPSnippetsFetcher>(
+ signin_manager, token_service, request_context, pref_service,
+ category_factory, language_model,
+ base::Bind(&safe_json::SafeJsonParser::Parse),
+ is_stable_channel ? google_apis::GetAPIKey()
+ : google_apis::GetNonStableAPIKey(),
+ service->user_classifier()),
base::MakeUnique<ImageFetcherImpl>(base::MakeUnique<ImageDecoderImpl>(),
request_context.get()),
base::MakeUnique<ImageDecoderImpl>(),
base::MakeUnique<RemoteSuggestionsDatabase>(database_dir, task_runner),
base::MakeUnique<RemoteSuggestionsStatusService>(signin_manager,
pref_service));
- service->set_ntp_snippets_service(provider.get());
- service->RegisterProvider(std::move(provider));
+ service->set_remote_suggestions_provider(provider.get());
+
+ PersistentScheduler* scheduler = nullptr;
+#if defined(OS_ANDROID)
+ scheduler = NTPSnippetsLauncher::Get();
+#endif // OS_ANDROID
+
+ auto scheduling_provider =
+ base::MakeUnique<SchedulingRemoteSuggestionsProvider>(
+ service, category_factory, std::move(provider), scheduler,
+ service->user_classifier(), pref_service);
+ service->set_remote_suggestions_scheduler(scheduling_provider.get());
+ service->RegisterProvider(std::move(scheduling_provider));
}
void RegisterForeignSessionsProvider(SyncService* sync_service,

Powered by Google App Engine
This is Rietveld 408576698