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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 #include "content/public/browser/browser_context.h" | 48 #include "content/public/browser/browser_context.h" |
49 #include "content/public/browser/browser_thread.h" | 49 #include "content/public/browser/browser_thread.h" |
50 #include "content/public/browser/storage_partition.h" | 50 #include "content/public/browser/storage_partition.h" |
51 #include "google_apis/google_api_keys.h" | 51 #include "google_apis/google_api_keys.h" |
52 #include "net/url_request/url_request_context_getter.h" | 52 #include "net/url_request/url_request_context_getter.h" |
53 | 53 |
54 #if defined(OS_ANDROID) | 54 #if defined(OS_ANDROID) |
55 #include "chrome/browser/android/chrome_feature_list.h" | 55 #include "chrome/browser/android/chrome_feature_list.h" |
56 #include "chrome/browser/android/ntp/ntp_snippets_launcher.h" | 56 #include "chrome/browser/android/ntp/ntp_snippets_launcher.h" |
57 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h" | 57 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h" |
| 58 #include "chrome/browser/ntp_snippets/download_suggestions_provider.h" |
58 #include "components/ntp_snippets/offline_pages/offline_page_proxy.h" | 59 #include "components/ntp_snippets/offline_pages/offline_page_proxy.h" |
59 #include "components/ntp_snippets/offline_pages/recent_tab_suggestions_provider.
h" | 60 #include "components/ntp_snippets/offline_pages/recent_tab_suggestions_provider.
h" |
60 #include "components/ntp_snippets/physical_web_pages/physical_web_page_suggestio
ns_provider.h" | 61 #include "components/ntp_snippets/physical_web_pages/physical_web_page_suggestio
ns_provider.h" |
61 #include "components/offline_pages/offline_page_model.h" | 62 #include "components/offline_pages/offline_page_model.h" |
62 | 63 |
| 64 using content::DownloadManager; |
63 using ntp_snippets::OfflinePageProxy; | 65 using ntp_snippets::OfflinePageProxy; |
64 using ntp_snippets::PhysicalWebPageSuggestionsProvider; | 66 using ntp_snippets::PhysicalWebPageSuggestionsProvider; |
65 using ntp_snippets::RecentTabSuggestionsProvider; | 67 using ntp_snippets::RecentTabSuggestionsProvider; |
66 using offline_pages::OfflinePageModel; | 68 using offline_pages::OfflinePageModel; |
67 using offline_pages::OfflinePageModelFactory; | 69 using offline_pages::OfflinePageModelFactory; |
68 #endif // OS_ANDROID | 70 #endif // OS_ANDROID |
69 | 71 |
70 using bookmarks::BookmarkModel; | 72 using bookmarks::BookmarkModel; |
71 using content::BrowserThread; | 73 using content::BrowserThread; |
72 using history::HistoryService; | 74 using history::HistoryService; |
(...skipping 16 matching lines...) Expand all Loading... |
89 | 91 |
90 // Clear the tasks that can be scheduled by running services. | 92 // Clear the tasks that can be scheduled by running services. |
91 void ClearScheduledTasks() { | 93 void ClearScheduledTasks() { |
92 #if defined(OS_ANDROID) | 94 #if defined(OS_ANDROID) |
93 NTPSnippetsLauncher::Get()->Unschedule(); | 95 NTPSnippetsLauncher::Get()->Unschedule(); |
94 #endif // OS_ANDROID | 96 #endif // OS_ANDROID |
95 } | 97 } |
96 | 98 |
97 #if defined(OS_ANDROID) | 99 #if defined(OS_ANDROID) |
98 void RegisterRecentTabProvider( | 100 void RegisterRecentTabProvider( |
99 const scoped_refptr<OfflinePageProxy>& offline_page_proxy, | 101 scoped_refptr<OfflinePageProxy> offline_page_proxy, |
100 ContentSuggestionsService* service, | 102 ContentSuggestionsService* service, |
101 CategoryFactory* category_factory, | 103 CategoryFactory* category_factory, |
102 PrefService* pref_service) { | 104 PrefService* pref_service) { |
103 auto provider = base::MakeUnique<RecentTabSuggestionsProvider>( | 105 auto provider = base::MakeUnique<RecentTabSuggestionsProvider>( |
104 service, category_factory, offline_page_proxy, pref_service); | 106 service, category_factory, std::move(offline_page_proxy), pref_service); |
| 107 service->RegisterProvider(std::move(provider)); |
| 108 } |
| 109 |
| 110 void RegisterDownloadsProvider( |
| 111 scoped_refptr<OfflinePageProxy> offline_page_proxy, |
| 112 DownloadManager* download_manager, |
| 113 ContentSuggestionsService* service, |
| 114 CategoryFactory* category_factory, |
| 115 PrefService* pref_service) { |
| 116 bool download_manager_ui_enabled = |
| 117 base::FeatureList::IsEnabled(chrome::android::kDownloadsUiFeature); |
| 118 auto provider = base::MakeUnique<DownloadSuggestionsProvider>( |
| 119 service, category_factory, std::move(offline_page_proxy), |
| 120 download_manager, pref_service, download_manager_ui_enabled); |
105 service->RegisterProvider(std::move(provider)); | 121 service->RegisterProvider(std::move(provider)); |
106 } | 122 } |
107 #endif // OS_ANDROID | 123 #endif // OS_ANDROID |
108 | 124 |
109 void RegisterBookmarkProvider(BookmarkModel* bookmark_model, | 125 void RegisterBookmarkProvider(BookmarkModel* bookmark_model, |
110 ContentSuggestionsService* service, | 126 ContentSuggestionsService* service, |
111 CategoryFactory* category_factory, | 127 CategoryFactory* category_factory, |
112 PrefService* pref_service) { | 128 PrefService* pref_service) { |
113 auto provider = base::MakeUnique<BookmarkSuggestionsProvider>( | 129 auto provider = base::MakeUnique<BookmarkSuggestionsProvider>( |
114 service, category_factory, bookmark_model, pref_service); | 130 service, category_factory, bookmark_model, pref_service); |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 ClearScheduledTasks(); | 254 ClearScheduledTasks(); |
239 return service; | 255 return service; |
240 } | 256 } |
241 | 257 |
242 CategoryFactory* category_factory = service->category_factory(); | 258 CategoryFactory* category_factory = service->category_factory(); |
243 #if defined(OS_ANDROID) | 259 #if defined(OS_ANDROID) |
244 OfflinePageModel* offline_page_model = | 260 OfflinePageModel* offline_page_model = |
245 OfflinePageModelFactory::GetForBrowserContext(profile); | 261 OfflinePageModelFactory::GetForBrowserContext(profile); |
246 scoped_refptr<OfflinePageProxy> offline_page_proxy( | 262 scoped_refptr<OfflinePageProxy> offline_page_proxy( |
247 new OfflinePageProxy(offline_page_model)); | 263 new OfflinePageProxy(offline_page_model)); |
| 264 DownloadManager* download_manager = |
| 265 content::BrowserContext::GetDownloadManager(profile); |
248 #endif // OS_ANDROID | 266 #endif // OS_ANDROID |
249 BookmarkModel* bookmark_model = | 267 BookmarkModel* bookmark_model = |
250 BookmarkModelFactory::GetForBrowserContext(profile); | 268 BookmarkModelFactory::GetForBrowserContext(profile); |
251 SigninManagerBase* signin_manager = | 269 SigninManagerBase* signin_manager = |
252 SigninManagerFactory::GetForProfile(profile); | 270 SigninManagerFactory::GetForProfile(profile); |
253 OAuth2TokenService* token_service = | 271 OAuth2TokenService* token_service = |
254 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); | 272 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); |
255 SyncService* sync_service = | 273 SyncService* sync_service = |
256 ProfileSyncServiceFactory::GetSyncServiceForBrowserContext(profile); | 274 ProfileSyncServiceFactory::GetSyncServiceForBrowserContext(profile); |
257 LanguageModel* language_model = | 275 LanguageModel* language_model = |
258 LanguageModelFactory::GetInstance()->GetForBrowserContext(profile); | 276 LanguageModelFactory::GetInstance()->GetForBrowserContext(profile); |
259 | 277 |
260 #if defined(OS_ANDROID) | 278 #if defined(OS_ANDROID) |
261 if (base::FeatureList::IsEnabled( | 279 if (base::FeatureList::IsEnabled( |
262 ntp_snippets::kRecentOfflineTabSuggestionsFeature)) { | 280 ntp_snippets::kRecentOfflineTabSuggestionsFeature)) { |
263 RegisterRecentTabProvider(offline_page_proxy, service, category_factory, | 281 RegisterRecentTabProvider(offline_page_proxy, service, category_factory, |
264 pref_service); | 282 pref_service); |
265 } | 283 } |
| 284 |
| 285 if (base::FeatureList::IsEnabled(ntp_snippets::kDownloadSuggestionsFeature)) { |
| 286 RegisterDownloadsProvider(offline_page_proxy, download_manager, service, |
| 287 category_factory, pref_service); |
| 288 } |
266 #endif // OS_ANDROID | 289 #endif // OS_ANDROID |
267 | 290 |
268 // |bookmark_model| can be null in tests. | 291 // |bookmark_model| can be null in tests. |
269 if (base::FeatureList::IsEnabled(ntp_snippets::kBookmarkSuggestionsFeature) && | 292 if (base::FeatureList::IsEnabled(ntp_snippets::kBookmarkSuggestionsFeature) && |
270 bookmark_model) { | 293 bookmark_model) { |
271 RegisterBookmarkProvider(bookmark_model, service, category_factory, | 294 RegisterBookmarkProvider(bookmark_model, service, category_factory, |
272 pref_service); | 295 pref_service); |
273 } | 296 } |
274 | 297 |
275 #if defined(OS_ANDROID) | 298 #if defined(OS_ANDROID) |
(...skipping 10 matching lines...) Expand all Loading... |
286 } | 309 } |
287 | 310 |
288 if (base::FeatureList::IsEnabled( | 311 if (base::FeatureList::IsEnabled( |
289 ntp_snippets::kForeignSessionsSuggestionsFeature)) { | 312 ntp_snippets::kForeignSessionsSuggestionsFeature)) { |
290 RegisterForeignSessionsProvider(sync_service, service, category_factory, | 313 RegisterForeignSessionsProvider(sync_service, service, category_factory, |
291 pref_service); | 314 pref_service); |
292 } | 315 } |
293 | 316 |
294 return service; | 317 return service; |
295 } | 318 } |
OLD | NEW |