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

Unified Diff: ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory.cc

Issue 2557363002: [NTP Snippets] Refactor background scheduling for remote suggestions (Closed)
Patch Set: Fixing the last changes :) 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: ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory.cc
diff --git a/ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory.cc b/ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory.cc
index 3dd4b40f985139e8236ef4c15d6981942bb75e27..232edcbd2c8c6658bae5de951e370b85f95ae812 100644
--- a/ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory.cc
+++ b/ios/chrome/browser/ntp_snippets/ios_chrome_content_suggestions_service_factory.cc
@@ -24,9 +24,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/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/signin/core/browser/signin_manager.h"
#include "components/version_info/version_info.h"
#include "google_apis/google_api_keys.h"
@@ -49,10 +51,11 @@ using ios::BookmarkModelFactory;
using ntp_snippets::BookmarkSuggestionsProvider;
using ntp_snippets::ContentSuggestionsService;
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 suggestions::CreateIOSImageDecoder;
using suggestions::ImageFetcherImpl;
@@ -147,7 +150,6 @@ IOSChromeContentSuggestionsServiceFactory::BuildServiceInstanceFor(
OAuth2TokenServiceFactory::GetForBrowserState(chrome_browser_state);
scoped_refptr<net::URLRequestContextGetter> request_context =
browser_state->GetRequestContext();
- NTPSnippetsScheduler* scheduler = nullptr;
base::FilePath database_dir(
browser_state->GetStatePath().Append(ntp_snippets::kDatabaseFolder));
scoped_refptr<base::SequencedTaskRunner> task_runner =
@@ -155,27 +157,32 @@ IOSChromeContentSuggestionsServiceFactory::BuildServiceInstanceFor(
->GetSequencedTaskRunnerWithShutdownBehavior(
base::SequencedWorkerPool::GetSequenceToken(),
base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN);
- std::unique_ptr<RemoteSuggestionsProvider> ntp_snippets_service =
- base::MakeUnique<RemoteSuggestionsProvider>(
- service.get(), prefs,
- GetApplicationContext()->GetApplicationLocale(),
- service->category_ranker(), service->user_classifier(), scheduler,
- base::MakeUnique<NTPSnippetsFetcher>(
- signin_manager, token_service, request_context, prefs, nullptr,
- base::Bind(&ParseJson),
- GetChannel() == version_info::Channel::STABLE
- ? google_apis::GetAPIKey()
- : google_apis::GetNonStableAPIKey(),
- service->user_classifier()),
- base::MakeUnique<ImageFetcherImpl>(
- request_context.get(), web::WebThread::GetBlockingPool()),
- CreateIOSImageDecoder(task_runner),
- base::MakeUnique<RemoteSuggestionsDatabase>(database_dir,
- task_runner),
- base::MakeUnique<RemoteSuggestionsStatusService>(signin_manager,
- prefs));
- service->set_ntp_snippets_service(ntp_snippets_service.get());
- service->RegisterProvider(std::move(ntp_snippets_service));
+ auto provider = base::MakeUnique<RemoteSuggestionsProviderImpl>(
+ service.get(), prefs, GetApplicationContext()->GetApplicationLocale(),
+ service->category_ranker(),
+ base::MakeUnique<NTPSnippetsFetcher>(
+ signin_manager, token_service, request_context, prefs, nullptr,
+ base::Bind(&ParseJson),
+ GetChannel() == version_info::Channel::STABLE
+ ? google_apis::GetAPIKey()
+ : google_apis::GetNonStableAPIKey(),
+ service->user_classifier()),
+ base::MakeUnique<ImageFetcherImpl>(request_context.get(),
+ web::WebThread::GetBlockingPool()),
+ CreateIOSImageDecoder(task_runner),
+ base::MakeUnique<RemoteSuggestionsDatabase>(database_dir, task_runner),
+ base::MakeUnique<RemoteSuggestionsStatusService>(signin_manager,
+ prefs));
+
+ // TODO(jkrcal): Implement a persistent scheduler for iOS. crbug.com/676249
+ auto scheduling_provider =
+ base::MakeUnique<SchedulingRemoteSuggestionsProvider>(
+ service.get(), std::move(provider),
+ /*persistent_scheduler=*/nullptr, service->user_classifier(),
+ prefs);
+ service->set_remote_suggestions_provider(scheduling_provider.get());
+ service->set_remote_suggestions_scheduler(scheduling_provider.get());
+ service->RegisterProvider(std::move(scheduling_provider));
}
return std::move(service);

Powered by Google App Engine
This is Rietveld 408576698