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 2b4a13be546b13a67961c9f27359965406e461e5..d065de4d250d36d8efd9be9dead54f0f974f21d7 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" |
@@ -78,10 +79,11 @@ using ntp_snippets::BookmarkSuggestionsProvider; |
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; |
@@ -147,10 +149,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 = |
@@ -160,9 +158,9 @@ 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, pref_service, g_browser_process->GetApplicationLocale(), |
- service->category_ranker(), service->user_classifier(), scheduler, |
+ service->category_ranker(), |
base::MakeUnique<NTPSnippetsFetcher>( |
signin_manager, token_service, request_context, pref_service, |
language_model, base::Bind(&safe_json::SafeJsonParser::Parse), |
@@ -175,8 +173,19 @@ void RegisterArticleProvider(SigninManagerBase* signin_manager, |
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)); |
+ |
+ PersistentScheduler* scheduler = nullptr; |
+#if defined(OS_ANDROID) |
+ scheduler = NTPSnippetsLauncher::Get(); |
+#endif // OS_ANDROID |
+ |
+ auto scheduling_provider = |
+ base::MakeUnique<SchedulingRemoteSuggestionsProvider>( |
+ service, std::move(provider), scheduler, service->user_classifier(), |
+ pref_service); |
+ service->set_remote_suggestions_provider(scheduling_provider.get()); |
+ service->set_remote_suggestions_scheduler(scheduling_provider.get()); |
+ service->RegisterProvider(std::move(scheduling_provider)); |
} |
void RegisterForeignSessionsProvider(SyncService* sync_service, |