| 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 6ad50364d596ce40c765efd3d3d3ef6e888e3310..8e7e3d60627873f8cbec4d94e8241def18b8e416 100644
|
| --- a/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc
|
| +++ b/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "chrome/browser/ntp_snippets/content_suggestions_service_factory.h"
|
|
|
| +#include <utility>
|
| +
|
| #include "base/feature_list.h"
|
| #include "base/files/file_path.h"
|
| #include "base/memory/ptr_util.h"
|
| @@ -16,8 +18,10 @@
|
| #include "chrome/browser/search/suggestions/suggestions_service_factory.h"
|
| #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
|
| #include "chrome/browser/signin/signin_manager_factory.h"
|
| +#include "chrome/browser/sync/profile_sync_service_factory.h"
|
| #include "chrome/common/channel_info.h"
|
| #include "components/bookmarks/browser/bookmark_model.h"
|
| +#include "components/browser_sync/profile_sync_service.h"
|
| #include "components/image_fetcher/image_decoder.h"
|
| #include "components/image_fetcher/image_fetcher.h"
|
| #include "components/image_fetcher/image_fetcher_impl.h"
|
| @@ -33,6 +37,8 @@
|
| #include "components/ntp_snippets/ntp_snippets_scheduler.h"
|
| #include "components/ntp_snippets/ntp_snippets_service.h"
|
| #include "components/ntp_snippets/ntp_snippets_status_service.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"
|
| #include "components/safe_json/safe_json_parser.h"
|
| #include "components/signin/core/browser/profile_oauth2_token_service.h"
|
| @@ -70,9 +76,12 @@ using ntp_snippets::NTPSnippetsFetcher;
|
| using ntp_snippets::NTPSnippetsService;
|
| using ntp_snippets::NTPSnippetsScheduler;
|
| using ntp_snippets::NTPSnippetsStatusService;
|
| +using ntp_snippets::ForeignSessionsSuggestionsProvider;
|
| +using ntp_snippets::TabDelegateSyncAdapter;
|
| using suggestions::ImageDecoderImpl;
|
| using suggestions::SuggestionsService;
|
| using suggestions::SuggestionsServiceFactory;
|
| +using sync_driver::SyncService;
|
|
|
| namespace {
|
|
|
| @@ -169,6 +178,19 @@ void RegisterArticleProvider(SigninManagerBase* signin_manager,
|
| service->RegisterProvider(std::move(ntp_snippets_service));
|
| }
|
|
|
| +void RegisterForeignSessionsProvider(SyncService* sync_service,
|
| + ContentSuggestionsService* service,
|
| + CategoryFactory* category_factory,
|
| + PrefService* pref_service) {
|
| + std::unique_ptr<TabDelegateSyncAdapter> sync_adapter =
|
| + base::MakeUnique<TabDelegateSyncAdapter>(sync_service);
|
| + std::unique_ptr<ForeignSessionsSuggestionsProvider>
|
| + foreign_sessions_suggestions_provider =
|
| + base::MakeUnique<ForeignSessionsSuggestionsProvider>(
|
| + service, category_factory, std::move(sync_adapter), pref_service);
|
| + service->RegisterProvider(std::move(foreign_sessions_suggestions_provider));
|
| +}
|
| +
|
| } // namespace
|
|
|
| // static
|
| @@ -201,6 +223,7 @@ ContentSuggestionsServiceFactory::ContentSuggestionsServiceFactory()
|
| DependsOn(OfflinePageModelFactory::GetInstance());
|
| #endif // OS_ANDROID
|
| DependsOn(ProfileOAuth2TokenServiceFactory::GetInstance());
|
| + DependsOn(ProfileSyncServiceFactory::GetInstance());
|
| DependsOn(SigninManagerFactory::GetInstance());
|
| DependsOn(SuggestionsServiceFactory::GetInstance());
|
| }
|
| @@ -243,6 +266,8 @@ KeyedService* ContentSuggestionsServiceFactory::BuildServiceInstanceFor(
|
| ProfileOAuth2TokenServiceFactory::GetForProfile(profile);
|
| SuggestionsService* suggestions_service =
|
| SuggestionsServiceFactory::GetForProfile(profile);
|
| + SyncService* sync_service =
|
| + ProfileSyncServiceFactory::GetSyncServiceForBrowserContext(profile);
|
|
|
| #if defined(OS_ANDROID)
|
| bool recent_tabs_enabled = base::FeatureList::IsEnabled(
|
| @@ -274,5 +299,11 @@ KeyedService* ContentSuggestionsServiceFactory::BuildServiceInstanceFor(
|
| service, category_factory, pref_service, profile);
|
| }
|
|
|
| + if (base::FeatureList::IsEnabled(
|
| + ntp_snippets::kForeignSessionsSuggestionsFeature)) {
|
| + RegisterForeignSessionsProvider(sync_service, service, category_factory,
|
| + pref_service);
|
| + }
|
| +
|
| return service;
|
| }
|
|
|