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

Side by Side Diff: chrome/browser/ntp_snippets/content_suggestions_service_factory.cc

Issue 2706343007: Only show Last N Pages in the UI when the corresponding tab is visible. (cont'd) (Closed)
Patch Set: Rebase. Created 3 years, 9 months 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 unified diff | Download patch
OLDNEW
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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 #include "content/public/browser/browser_context.h" 52 #include "content/public/browser/browser_context.h"
53 #include "content/public/browser/browser_thread.h" 53 #include "content/public/browser/browser_thread.h"
54 #include "content/public/browser/storage_partition.h" 54 #include "content/public/browser/storage_partition.h"
55 #include "google_apis/google_api_keys.h" 55 #include "google_apis/google_api_keys.h"
56 #include "net/url_request/url_request_context_getter.h" 56 #include "net/url_request/url_request_context_getter.h"
57 57
58 #if defined(OS_ANDROID) 58 #if defined(OS_ANDROID)
59 #include "chrome/browser/android/chrome_feature_list.h" 59 #include "chrome/browser/android/chrome_feature_list.h"
60 #include "chrome/browser/android/ntp/ntp_snippets_launcher.h" 60 #include "chrome/browser/android/ntp/ntp_snippets_launcher.h"
61 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h" 61 #include "chrome/browser/android/offline_pages/offline_page_model_factory.h"
62 #include "chrome/browser/android/offline_pages/request_coordinator_factory.h"
62 #include "chrome/browser/download/download_history.h" 63 #include "chrome/browser/download/download_history.h"
63 #include "chrome/browser/download/download_service.h" 64 #include "chrome/browser/download/download_service.h"
64 #include "chrome/browser/download/download_service_factory.h" 65 #include "chrome/browser/download/download_service_factory.h"
65 #include "chrome/browser/ntp_snippets/download_suggestions_provider.h" 66 #include "chrome/browser/ntp_snippets/download_suggestions_provider.h"
66 #include "components/ntp_snippets/offline_pages/recent_tab_suggestions_provider. h" 67 #include "components/ntp_snippets/offline_pages/recent_tab_suggestions_provider. h"
67 #include "components/ntp_snippets/physical_web_pages/physical_web_page_suggestio ns_provider.h" 68 #include "components/ntp_snippets/physical_web_pages/physical_web_page_suggestio ns_provider.h"
69 #include "components/offline_pages/core/background/request_coordinator.h"
68 #include "components/offline_pages/core/offline_page_feature.h" 70 #include "components/offline_pages/core/offline_page_feature.h"
69 #include "components/offline_pages/core/offline_page_model.h" 71 #include "components/offline_pages/core/offline_page_model.h"
72 #include "components/offline_pages/core/recent_tabs/recent_tabs_ui_adapter_deleg ate.h"
70 #include "components/physical_web/data_source/physical_web_data_source.h" 73 #include "components/physical_web/data_source/physical_web_data_source.h"
71 74
72 using content::DownloadManager; 75 using content::DownloadManager;
73 using ntp_snippets::PhysicalWebPageSuggestionsProvider; 76 using ntp_snippets::PhysicalWebPageSuggestionsProvider;
74 using ntp_snippets::RecentTabSuggestionsProvider; 77 using ntp_snippets::RecentTabSuggestionsProvider;
75 using offline_pages::OfflinePageModel; 78 using offline_pages::OfflinePageModel;
79 using offline_pages::RequestCoordinator;
76 using offline_pages::OfflinePageModelFactory; 80 using offline_pages::OfflinePageModelFactory;
81 using offline_pages::RequestCoordinatorFactory;
77 using physical_web::PhysicalWebDataSource; 82 using physical_web::PhysicalWebDataSource;
78 #endif // OS_ANDROID 83 #endif // OS_ANDROID
79 84
80 using bookmarks::BookmarkModel; 85 using bookmarks::BookmarkModel;
81 using content::BrowserThread; 86 using content::BrowserThread;
82 using history::HistoryService; 87 using history::HistoryService;
83 using image_fetcher::ImageFetcherImpl; 88 using image_fetcher::ImageFetcherImpl;
84 using ntp_snippets::BookmarkSuggestionsProvider; 89 using ntp_snippets::BookmarkSuggestionsProvider;
85 using ntp_snippets::CategoryRanker; 90 using ntp_snippets::CategoryRanker;
86 using ntp_snippets::ContentSuggestionsService; 91 using ntp_snippets::ContentSuggestionsService;
(...skipping 26 matching lines...) Expand all
113 #if defined(OS_ANDROID) 118 #if defined(OS_ANDROID)
114 119
115 bool IsRecentTabProviderEnabled() { 120 bool IsRecentTabProviderEnabled() {
116 return base::FeatureList::IsEnabled( 121 return base::FeatureList::IsEnabled(
117 ntp_snippets::kRecentOfflineTabSuggestionsFeature) && 122 ntp_snippets::kRecentOfflineTabSuggestionsFeature) &&
118 base::FeatureList::IsEnabled( 123 base::FeatureList::IsEnabled(
119 offline_pages::kOffliningRecentPagesFeature); 124 offline_pages::kOffliningRecentPagesFeature);
120 } 125 }
121 126
122 void RegisterRecentTabProvider(OfflinePageModel* offline_page_model, 127 void RegisterRecentTabProvider(OfflinePageModel* offline_page_model,
128 RequestCoordinator* request_coordinator,
123 ContentSuggestionsService* service, 129 ContentSuggestionsService* service,
124 PrefService* pref_service) { 130 PrefService* pref_service) {
131 offline_pages::DownloadUIAdapter* ui_adapter = offline_pages::
132 RecentTabsUIAdapterDelegate::GetOrCreateRecentTabsUIAdapter(
133 offline_page_model, request_coordinator);
125 auto provider = base::MakeUnique<RecentTabSuggestionsProvider>( 134 auto provider = base::MakeUnique<RecentTabSuggestionsProvider>(
126 service, offline_page_model, pref_service); 135 service, ui_adapter, pref_service);
127 service->RegisterProvider(std::move(provider)); 136 service->RegisterProvider(std::move(provider));
128 } 137 }
129 138
130 void RegisterDownloadsProvider(OfflinePageModel* offline_page_model, 139 void RegisterDownloadsProvider(OfflinePageModel* offline_page_model,
131 DownloadManager* download_manager, 140 DownloadManager* download_manager,
132 DownloadHistory* download_history, 141 DownloadHistory* download_history,
133 ContentSuggestionsService* service, 142 ContentSuggestionsService* service,
134 PrefService* pref_service) { 143 PrefService* pref_service) {
135 auto provider = base::MakeUnique<DownloadSuggestionsProvider>( 144 auto provider = base::MakeUnique<DownloadSuggestionsProvider>(
136 service, offline_page_model, download_manager, download_history, 145 service, offline_page_model, download_manager, download_history,
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
283 std::unique_ptr<CategoryRanker> category_ranker = 292 std::unique_ptr<CategoryRanker> category_ranker =
284 ntp_snippets::BuildSelectedCategoryRanker( 293 ntp_snippets::BuildSelectedCategoryRanker(
285 pref_service, base::MakeUnique<base::DefaultClock>()); 294 pref_service, base::MakeUnique<base::DefaultClock>());
286 auto* service = 295 auto* service =
287 new ContentSuggestionsService(State::ENABLED, signin_manager, 296 new ContentSuggestionsService(State::ENABLED, signin_manager,
288 history_service, pref_service, std::move(category_ranker)); 297 history_service, pref_service, std::move(category_ranker));
289 298
290 #if defined(OS_ANDROID) 299 #if defined(OS_ANDROID)
291 OfflinePageModel* offline_page_model = 300 OfflinePageModel* offline_page_model =
292 OfflinePageModelFactory::GetForBrowserContext(profile); 301 OfflinePageModelFactory::GetForBrowserContext(profile);
302 RequestCoordinator* request_coordinator =
303 RequestCoordinatorFactory::GetForBrowserContext(profile);
293 DownloadManager* download_manager = 304 DownloadManager* download_manager =
294 content::BrowserContext::GetDownloadManager(profile); 305 content::BrowserContext::GetDownloadManager(profile);
295 DownloadService* download_service = 306 DownloadService* download_service =
296 DownloadServiceFactory::GetForBrowserContext(profile); 307 DownloadServiceFactory::GetForBrowserContext(profile);
297 DownloadHistory* download_history = download_service->GetDownloadHistory(); 308 DownloadHistory* download_history = download_service->GetDownloadHistory();
298 PhysicalWebDataSource* physical_web_data_source = 309 PhysicalWebDataSource* physical_web_data_source =
299 g_browser_process->GetPhysicalWebDataSource(); 310 g_browser_process->GetPhysicalWebDataSource();
300 #endif // OS_ANDROID 311 #endif // OS_ANDROID
301 BookmarkModel* bookmark_model = 312 BookmarkModel* bookmark_model =
302 BookmarkModelFactory::GetForBrowserContext(profile); 313 BookmarkModelFactory::GetForBrowserContext(profile);
303 OAuth2TokenService* token_service = 314 OAuth2TokenService* token_service =
304 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); 315 ProfileOAuth2TokenServiceFactory::GetForProfile(profile);
305 SyncService* sync_service = 316 SyncService* sync_service =
306 ProfileSyncServiceFactory::GetSyncServiceForBrowserContext(profile); 317 ProfileSyncServiceFactory::GetSyncServiceForBrowserContext(profile);
307 LanguageModel* language_model = 318 LanguageModel* language_model =
308 LanguageModelFactory::GetInstance()->GetForBrowserContext(profile); 319 LanguageModelFactory::GetInstance()->GetForBrowserContext(profile);
309 320
310 #if defined(OS_ANDROID) 321 #if defined(OS_ANDROID)
311 if (IsRecentTabProviderEnabled()) { 322 if (IsRecentTabProviderEnabled()) {
312 RegisterRecentTabProvider(offline_page_model, service, pref_service); 323 RegisterRecentTabProvider(offline_page_model, request_coordinator, service,
324 pref_service);
313 } 325 }
314 326
315 bool show_asset_downloads = 327 bool show_asset_downloads =
316 base::FeatureList::IsEnabled(features::kAssetDownloadSuggestionsFeature); 328 base::FeatureList::IsEnabled(features::kAssetDownloadSuggestionsFeature);
317 bool show_offline_page_downloads = base::FeatureList::IsEnabled( 329 bool show_offline_page_downloads = base::FeatureList::IsEnabled(
318 features::kOfflinePageDownloadSuggestionsFeature); 330 features::kOfflinePageDownloadSuggestionsFeature);
319 if (show_asset_downloads || show_offline_page_downloads) { 331 if (show_asset_downloads || show_offline_page_downloads) {
320 RegisterDownloadsProvider( 332 RegisterDownloadsProvider(
321 show_offline_page_downloads ? offline_page_model : nullptr, 333 show_offline_page_downloads ? offline_page_model : nullptr,
322 show_asset_downloads ? download_manager : nullptr, download_history, 334 show_asset_downloads ? download_manager : nullptr, download_history,
(...skipping 23 matching lines...) Expand all
346 ntp_snippets::kForeignSessionsSuggestionsFeature)) { 358 ntp_snippets::kForeignSessionsSuggestionsFeature)) {
347 RegisterForeignSessionsProvider(sync_service, service, pref_service); 359 RegisterForeignSessionsProvider(sync_service, service, pref_service);
348 } 360 }
349 361
350 return service; 362 return service;
351 363
352 #else 364 #else
353 return nullptr; 365 return nullptr;
354 #endif // CONTENT_SUGGESTIONS_ENABLED 366 #endif // CONTENT_SUGGESTIONS_ENABLED
355 } 367 }
OLDNEW
« no previous file with comments | « chrome/browser/android/offline_pages/offline_page_bridge.cc ('k') | components/ntp_snippets/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698