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

Unified Diff: chrome/browser/ntp_snippets/content_suggestions_service_factory.cc

Issue 2925053003: [NTP::Push] Adding BreakingNewsSuggestionsProvider (Closed)
Patch Set: Fixing the build. Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | components/ntp_snippets/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 ca5920bc51f5ca164e22f1b4604e56025a9609f3..5ff0ef0e94c61b06f74c90c0996b9a003ac7dffc 100644
--- a/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc
+++ b/chrome/browser/ntp_snippets/content_suggestions_service_factory.cc
@@ -31,12 +31,16 @@
#include "chrome/common/pref_names.h"
#include "components/bookmarks/browser/bookmark_model.h"
#include "components/browser_sync/profile_sync_service.h"
+#include "components/gcm_driver/gcm_profile_service.h"
#include "components/image_fetcher/core/image_decoder.h"
#include "components/image_fetcher/core/image_fetcher.h"
#include "components/image_fetcher/core/image_fetcher_impl.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h"
#include "components/keyed_service/core/service_access_type.h"
#include "components/ntp_snippets/bookmarks/bookmark_suggestions_provider.h"
+#include "components/ntp_snippets/breaking_news/breaking_news_suggestions_provider.h"
+#include "components/ntp_snippets/breaking_news/content_suggestions_gcm_app_handler.h"
+#include "components/ntp_snippets/breaking_news/subscription_manager.h"
#include "components/ntp_snippets/category_rankers/category_ranker.h"
#include "components/ntp_snippets/content_suggestions_service.h"
#include "components/ntp_snippets/features.h"
@@ -92,16 +96,21 @@ using content::BrowserThread;
using history::HistoryService;
using image_fetcher::ImageFetcherImpl;
using ntp_snippets::BookmarkSuggestionsProvider;
+using ntp_snippets::BreakingNewsSuggestionsProvider;
using ntp_snippets::CategoryRanker;
+using ntp_snippets::ContentSuggestionsGCMAppHandler;
using ntp_snippets::ContentSuggestionsService;
using ntp_snippets::ForeignSessionsSuggestionsProvider;
using ntp_snippets::GetFetchEndpoint;
+using ntp_snippets::GetPushUpdatesSubscriptionEndpoint;
+using ntp_snippets::GetPushUpdatesUnsubscriptionEndpoint;
using ntp_snippets::PersistentScheduler;
using ntp_snippets::RemoteSuggestionsDatabase;
using ntp_snippets::RemoteSuggestionsFetcher;
using ntp_snippets::RemoteSuggestionsProviderImpl;
using ntp_snippets::RemoteSuggestionsSchedulerImpl;
using ntp_snippets::RemoteSuggestionsStatusService;
+using ntp_snippets::SubscriptionManager;
using ntp_snippets::TabDelegateSyncAdapter;
using ntp_snippets::UserClassifier;
using suggestions::ImageDecoderImpl;
@@ -359,6 +368,36 @@ void RegisterForeignSessionsProviderIfEnabled(
service->RegisterProvider(std::move(provider));
}
+void SubscribeForGCMPushUpdates(PrefService* pref_service,
+ ContentSuggestionsService* service,
+ Profile* profile) {
+ gcm::GCMDriver* gcm_driver =
+ gcm::GCMProfileServiceFactory::GetForProfile(profile)->driver();
+
+ scoped_refptr<net::URLRequestContextGetter> request_context =
+ content::BrowserContext::GetDefaultStoragePartition(profile)
+ ->GetURLRequestContext();
+
+ auto subscription_manager = base::MakeUnique<SubscriptionManager>(
+ request_context, pref_service,
+ GetPushUpdatesSubscriptionEndpoint(chrome::GetChannel()),
+ GetPushUpdatesUnsubscriptionEndpoint(chrome::GetChannel()));
+
+ instance_id::InstanceIDProfileService* instance_id_profile_service =
+ instance_id::InstanceIDProfileServiceFactory::GetForProfile(profile);
+ DCHECK(instance_id_profile_service);
+ DCHECK(instance_id_profile_service->driver());
+
+ auto handler = base::MakeUnique<ContentSuggestionsGCMAppHandler>(
+ gcm_driver, instance_id_profile_service->driver(), pref_service,
+ std::move(subscription_manager));
+
+ auto provider = base::MakeUnique<BreakingNewsSuggestionsProvider>(
+ service, std::move(handler));
+ provider->Start();
+ service->RegisterProvider(std::move(provider));
+}
+
} // namespace
#endif // CONTENT_SUGGESTIONS_ENABLED
@@ -470,6 +509,10 @@ KeyedService* ContentSuggestionsServiceFactory::BuildServiceInstanceFor(
}
#endif
+ if (base::FeatureList::IsEnabled(
+ ntp_snippets::kContentSuggestionsPushFeature)) {
+ SubscribeForGCMPushUpdates(pref_service, service, profile);
+ }
return service;
#else
« no previous file with comments | « no previous file | components/ntp_snippets/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698