| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #include "chrome/browser/ntp_snippets/content_suggestions_service_factory.h" | 5 #include "chrome/browser/ntp_snippets/content_suggestions_service_factory.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/feature_list.h" | 9 #include "base/feature_list.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 #include "content/public/browser/browser_context.h" | 51 #include "content/public/browser/browser_context.h" |
| 52 #include "content/public/browser/browser_thread.h" | 52 #include "content/public/browser/browser_thread.h" |
| 53 #include "content/public/browser/storage_partition.h" | 53 #include "content/public/browser/storage_partition.h" |
| 54 #include "google_apis/google_api_keys.h" | 54 #include "google_apis/google_api_keys.h" |
| 55 #include "net/url_request/url_request_context_getter.h" | 55 #include "net/url_request/url_request_context_getter.h" |
| 56 | 56 |
| 57 #if defined(OS_ANDROID) | 57 #if defined(OS_ANDROID) |
| 58 #include "chrome/browser/android/chrome_feature_list.h" | 58 #include "chrome/browser/android/chrome_feature_list.h" |
| 59 #include "chrome/browser/android/ntp/ntp_snippets_launcher.h" | 59 #include "chrome/browser/android/ntp/ntp_snippets_launcher.h" |
| 60 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h" | 60 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h" |
| 61 #include "chrome/browser/download/download_history.h" |
| 62 #include "chrome/browser/download/download_service.h" |
| 63 #include "chrome/browser/download/download_service_factory.h" |
| 61 #include "chrome/browser/ntp_snippets/download_suggestions_provider.h" | 64 #include "chrome/browser/ntp_snippets/download_suggestions_provider.h" |
| 62 #include "components/ntp_snippets/offline_pages/recent_tab_suggestions_provider.
h" | 65 #include "components/ntp_snippets/offline_pages/recent_tab_suggestions_provider.
h" |
| 63 #include "components/ntp_snippets/physical_web_pages/physical_web_page_suggestio
ns_provider.h" | 66 #include "components/ntp_snippets/physical_web_pages/physical_web_page_suggestio
ns_provider.h" |
| 64 #include "components/offline_pages/core/offline_page_feature.h" | 67 #include "components/offline_pages/core/offline_page_feature.h" |
| 65 #include "components/offline_pages/core/offline_page_model.h" | 68 #include "components/offline_pages/core/offline_page_model.h" |
| 66 #include "components/physical_web/data_source/physical_web_data_source.h" | 69 #include "components/physical_web/data_source/physical_web_data_source.h" |
| 67 | 70 |
| 68 using content::DownloadManager; | 71 using content::DownloadManager; |
| 69 using ntp_snippets::PhysicalWebPageSuggestionsProvider; | 72 using ntp_snippets::PhysicalWebPageSuggestionsProvider; |
| 70 using ntp_snippets::RecentTabSuggestionsProvider; | 73 using ntp_snippets::RecentTabSuggestionsProvider; |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 void RegisterRecentTabProvider(OfflinePageModel* offline_page_model, | 116 void RegisterRecentTabProvider(OfflinePageModel* offline_page_model, |
| 114 ContentSuggestionsService* service, | 117 ContentSuggestionsService* service, |
| 115 PrefService* pref_service) { | 118 PrefService* pref_service) { |
| 116 auto provider = base::MakeUnique<RecentTabSuggestionsProvider>( | 119 auto provider = base::MakeUnique<RecentTabSuggestionsProvider>( |
| 117 service, offline_page_model, pref_service); | 120 service, offline_page_model, pref_service); |
| 118 service->RegisterProvider(std::move(provider)); | 121 service->RegisterProvider(std::move(provider)); |
| 119 } | 122 } |
| 120 | 123 |
| 121 void RegisterDownloadsProvider(OfflinePageModel* offline_page_model, | 124 void RegisterDownloadsProvider(OfflinePageModel* offline_page_model, |
| 122 DownloadManager* download_manager, | 125 DownloadManager* download_manager, |
| 126 DownloadHistory* download_history, |
| 123 ContentSuggestionsService* service, | 127 ContentSuggestionsService* service, |
| 124 PrefService* pref_service) { | 128 PrefService* pref_service) { |
| 125 bool download_manager_ui_enabled = | 129 bool download_manager_ui_enabled = |
| 126 base::FeatureList::IsEnabled(chrome::android::kDownloadsUiFeature); | 130 base::FeatureList::IsEnabled(chrome::android::kDownloadsUiFeature); |
| 127 auto provider = base::MakeUnique<DownloadSuggestionsProvider>( | 131 auto provider = base::MakeUnique<DownloadSuggestionsProvider>( |
| 128 service, offline_page_model, download_manager, pref_service, | 132 service, offline_page_model, download_manager, download_history, |
| 129 download_manager_ui_enabled); | 133 pref_service, download_manager_ui_enabled); |
| 130 service->RegisterProvider(std::move(provider)); | 134 service->RegisterProvider(std::move(provider)); |
| 131 } | 135 } |
| 132 #endif // OS_ANDROID | 136 #endif // OS_ANDROID |
| 133 | 137 |
| 134 void RegisterBookmarkProvider(BookmarkModel* bookmark_model, | 138 void RegisterBookmarkProvider(BookmarkModel* bookmark_model, |
| 135 ContentSuggestionsService* service, | 139 ContentSuggestionsService* service, |
| 136 PrefService* pref_service) { | 140 PrefService* pref_service) { |
| 137 auto provider = base::MakeUnique<BookmarkSuggestionsProvider>( | 141 auto provider = base::MakeUnique<BookmarkSuggestionsProvider>( |
| 138 service, bookmark_model, pref_service); | 142 service, bookmark_model, pref_service); |
| 139 service->RegisterProvider(std::move(provider)); | 143 service->RegisterProvider(std::move(provider)); |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 281 // unschedule their tasks. We do it explicitly here instead. | 285 // unschedule their tasks. We do it explicitly here instead. |
| 282 ClearScheduledTasks(); | 286 ClearScheduledTasks(); |
| 283 return service; | 287 return service; |
| 284 } | 288 } |
| 285 | 289 |
| 286 #if defined(OS_ANDROID) | 290 #if defined(OS_ANDROID) |
| 287 OfflinePageModel* offline_page_model = | 291 OfflinePageModel* offline_page_model = |
| 288 OfflinePageModelFactory::GetForBrowserContext(profile); | 292 OfflinePageModelFactory::GetForBrowserContext(profile); |
| 289 DownloadManager* download_manager = | 293 DownloadManager* download_manager = |
| 290 content::BrowserContext::GetDownloadManager(profile); | 294 content::BrowserContext::GetDownloadManager(profile); |
| 295 DownloadService* download_service = |
| 296 DownloadServiceFactory::GetForBrowserContext(profile); |
| 297 DownloadHistory* download_history = download_service->GetDownloadHistory(); |
| 291 PhysicalWebDataSource* physical_web_data_source = | 298 PhysicalWebDataSource* physical_web_data_source = |
| 292 g_browser_process->GetPhysicalWebDataSource(); | 299 g_browser_process->GetPhysicalWebDataSource(); |
| 293 #endif // OS_ANDROID | 300 #endif // OS_ANDROID |
| 294 BookmarkModel* bookmark_model = | 301 BookmarkModel* bookmark_model = |
| 295 BookmarkModelFactory::GetForBrowserContext(profile); | 302 BookmarkModelFactory::GetForBrowserContext(profile); |
| 296 OAuth2TokenService* token_service = | 303 OAuth2TokenService* token_service = |
| 297 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); | 304 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); |
| 298 SyncService* sync_service = | 305 SyncService* sync_service = |
| 299 ProfileSyncServiceFactory::GetSyncServiceForBrowserContext(profile); | 306 ProfileSyncServiceFactory::GetSyncServiceForBrowserContext(profile); |
| 300 LanguageModel* language_model = | 307 LanguageModel* language_model = |
| 301 LanguageModelFactory::GetInstance()->GetForBrowserContext(profile); | 308 LanguageModelFactory::GetInstance()->GetForBrowserContext(profile); |
| 302 | 309 |
| 303 #if defined(OS_ANDROID) | 310 #if defined(OS_ANDROID) |
| 304 if (IsRecentTabProviderEnabled()) { | 311 if (IsRecentTabProviderEnabled()) { |
| 305 RegisterRecentTabProvider(offline_page_model, service, pref_service); | 312 RegisterRecentTabProvider(offline_page_model, service, pref_service); |
| 306 } | 313 } |
| 307 | 314 |
| 308 bool show_asset_downloads = | 315 bool show_asset_downloads = |
| 309 base::FeatureList::IsEnabled(features::kAssetDownloadSuggestionsFeature); | 316 base::FeatureList::IsEnabled(features::kAssetDownloadSuggestionsFeature); |
| 310 bool show_offline_page_downloads = base::FeatureList::IsEnabled( | 317 bool show_offline_page_downloads = base::FeatureList::IsEnabled( |
| 311 features::kOfflinePageDownloadSuggestionsFeature); | 318 features::kOfflinePageDownloadSuggestionsFeature); |
| 312 if (show_asset_downloads || show_offline_page_downloads) { | 319 if (show_asset_downloads || show_offline_page_downloads) { |
| 313 RegisterDownloadsProvider( | 320 RegisterDownloadsProvider( |
| 314 show_offline_page_downloads ? offline_page_model : nullptr, | 321 show_offline_page_downloads ? offline_page_model : nullptr, |
| 315 show_asset_downloads ? download_manager : nullptr, service, | 322 show_asset_downloads ? download_manager : nullptr, download_history, |
| 316 pref_service); | 323 service, pref_service); |
| 317 } | 324 } |
| 318 #endif // OS_ANDROID | 325 #endif // OS_ANDROID |
| 319 | 326 |
| 320 // |bookmark_model| can be null in tests. | 327 // |bookmark_model| can be null in tests. |
| 321 if (base::FeatureList::IsEnabled(ntp_snippets::kBookmarkSuggestionsFeature) && | 328 if (base::FeatureList::IsEnabled(ntp_snippets::kBookmarkSuggestionsFeature) && |
| 322 bookmark_model) { | 329 bookmark_model) { |
| 323 RegisterBookmarkProvider(bookmark_model, service, pref_service); | 330 RegisterBookmarkProvider(bookmark_model, service, pref_service); |
| 324 } | 331 } |
| 325 | 332 |
| 326 #if defined(OS_ANDROID) | 333 #if defined(OS_ANDROID) |
| 327 if (IsPhysicalWebPageProviderEnabled()) { | 334 if (IsPhysicalWebPageProviderEnabled()) { |
| 328 RegisterPhysicalWebPageProvider(service, physical_web_data_source, | 335 RegisterPhysicalWebPageProvider(service, physical_web_data_source, |
| 329 pref_service); | 336 pref_service); |
| 330 } | 337 } |
| 331 #endif // OS_ANDROID | 338 #endif // OS_ANDROID |
| 332 | 339 |
| 333 if (base::FeatureList::IsEnabled(ntp_snippets::kArticleSuggestionsFeature)) { | 340 if (base::FeatureList::IsEnabled(ntp_snippets::kArticleSuggestionsFeature)) { |
| 334 RegisterArticleProvider(signin_manager, token_service, service, | 341 RegisterArticleProvider(signin_manager, token_service, service, |
| 335 language_model, pref_service, profile); | 342 language_model, pref_service, profile); |
| 336 } | 343 } |
| 337 | 344 |
| 338 if (base::FeatureList::IsEnabled( | 345 if (base::FeatureList::IsEnabled( |
| 339 ntp_snippets::kForeignSessionsSuggestionsFeature)) { | 346 ntp_snippets::kForeignSessionsSuggestionsFeature)) { |
| 340 RegisterForeignSessionsProvider(sync_service, service, pref_service); | 347 RegisterForeignSessionsProvider(sync_service, service, pref_service); |
| 341 } | 348 } |
| 342 | 349 |
| 343 return service; | 350 return service; |
| 344 } | 351 } |
| OLD | NEW |