Index: chrome/browser/ntp_snippets/ntp_snippets_service_factory.cc |
diff --git a/chrome/browser/ntp_snippets/ntp_snippets_service_factory.cc b/chrome/browser/ntp_snippets/ntp_snippets_service_factory.cc |
index 5730e2f68d6fbf5adf3eed3aafa47eda1201ae88..0cf2dba8407534e2f217119029c88d510fbd9b5f 100644 |
--- a/chrome/browser/ntp_snippets/ntp_snippets_service_factory.cc |
+++ b/chrome/browser/ntp_snippets/ntp_snippets_service_factory.cc |
@@ -8,9 +8,18 @@ |
#include "base/memory/singleton.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/signin/profile_oauth2_token_service_factory.h" |
+#include "chrome/browser/signin/signin_manager_factory.h" |
#include "components/keyed_service/content/browser_context_dependency_manager.h" |
+#include "components/ntp_snippets/ntp_snippets_fetcher.h" |
#include "components/ntp_snippets/ntp_snippets_service.h" |
+#include "components/signin/core/browser/profile_oauth2_token_service.h" |
+#include "components/signin/core/browser/signin_manager.h" |
#include "content/public/browser/browser_context.h" |
+#include "content/public/browser/browser_thread.h" |
+#include "net/url_request/url_request_context_getter.h" |
+ |
+using content::BrowserThread; |
// static |
NTPSnippetsServiceFactory* NTPSnippetsServiceFactory::GetInstance() { |
@@ -34,6 +43,23 @@ NTPSnippetsServiceFactory::~NTPSnippetsServiceFactory() {} |
KeyedService* NTPSnippetsServiceFactory::BuildServiceInstanceFor( |
content::BrowserContext* context) const { |
+ Profile* profile = Profile::FromBrowserContext(context); |
+ SigninManagerBase* signin_manager = |
+ SigninManagerFactory::GetForProfile(profile); |
+ OAuth2TokenService* token_service = |
+ ProfileOAuth2TokenServiceFactory::GetForProfile(profile); |
+ scoped_refptr<net::URLRequestContextGetter> request_context = |
+ context->GetRequestContext(); |
+ |
+ scoped_refptr<base::SequencedTaskRunner> task_runner = |
+ BrowserThread::GetBlockingPool() |
+ ->GetSequencedTaskRunnerWithShutdownBehavior( |
+ base::SequencedWorkerPool::GetSequenceToken(), |
+ base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN); |
+ |
return new ntp_snippets::NTPSnippetsService( |
- g_browser_process->GetApplicationLocale()); |
+ task_runner, g_browser_process->GetApplicationLocale(), |
+ make_scoped_ptr(new ntp_snippets::NTPSnippetsFetcher( |
+ task_runner, signin_manager, token_service, request_context, |
+ profile->GetPath()))); |
} |