| Index: chrome/browser/services/gcm/gcm_profile_service_factory.cc
|
| diff --git a/chrome/browser/services/gcm/gcm_profile_service_factory.cc b/chrome/browser/services/gcm/gcm_profile_service_factory.cc
|
| index 561a2fd272166a24798efb71ae4edd7426ea994b..dbbe54c16587226cf164e6856048e56f10e0dc4a 100644
|
| --- a/chrome/browser/services/gcm/gcm_profile_service_factory.cc
|
| +++ b/chrome/browser/services/gcm/gcm_profile_service_factory.cc
|
| @@ -7,10 +7,14 @@
|
| #include "base/memory/scoped_ptr.h"
|
| #include "chrome/browser/profiles/incognito_helpers.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/services/gcm/gcm_profile_service.h"
|
| #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
|
| #include "chrome/browser/signin/signin_manager_factory.h"
|
| +#include "chrome/common/channel_info.h"
|
| +#include "components/gcm_driver/gcm_profile_service.h"
|
| #include "components/keyed_service/content/browser_context_dependency_manager.h"
|
| +#include "components/signin/core/browser/profile_identity_provider.h"
|
| +#include "components/signin/core/browser/signin_manager.h"
|
| +#include "content/public/browser/browser_thread.h"
|
|
|
| #if !defined(OS_ANDROID)
|
| #include "chrome/browser/ui/webui/signin/login_ui_service_factory.h"
|
| @@ -51,12 +55,31 @@ GCMProfileServiceFactory::~GCMProfileServiceFactory() {
|
|
|
| KeyedService* GCMProfileServiceFactory::BuildServiceInstanceFor(
|
| content::BrowserContext* context) const {
|
| + Profile* profile = Profile::FromBrowserContext(context);
|
| + DCHECK(!profile->IsOffTheRecord());
|
| +
|
| + base::SequencedWorkerPool* worker_pool =
|
| + content::BrowserThread::GetBlockingPool();
|
| + scoped_refptr<base::SequencedTaskRunner> blocking_task_runner(
|
| + worker_pool->GetSequencedTaskRunnerWithShutdownBehavior(
|
| + worker_pool->GetSequenceToken(),
|
| + base::SequencedWorkerPool::SKIP_ON_SHUTDOWN));
|
| #if defined(OS_ANDROID)
|
| - return new GCMProfileService(Profile::FromBrowserContext(context));
|
| + return new GCMProfileService(profile->GetPath(), blocking_task_runner);
|
| #else
|
| return new GCMProfileService(
|
| - Profile::FromBrowserContext(context),
|
| - scoped_ptr<GCMClientFactory>(new GCMClientFactory));
|
| + profile->GetPrefs(), profile->GetPath(), profile->GetRequestContext(),
|
| + chrome::GetChannel(),
|
| + scoped_ptr<ProfileIdentityProvider>(new ProfileIdentityProvider(
|
| + SigninManagerFactory::GetForProfile(profile),
|
| + ProfileOAuth2TokenServiceFactory::GetForProfile(profile),
|
| + LoginUIServiceFactory::GetShowLoginPopupCallbackForProfile(profile))),
|
| + scoped_ptr<GCMClientFactory>(new GCMClientFactory),
|
| + content::BrowserThread::GetMessageLoopProxyForThread(
|
| + content::BrowserThread::UI),
|
| + content::BrowserThread::GetMessageLoopProxyForThread(
|
| + content::BrowserThread::IO),
|
| + blocking_task_runner);
|
| #endif
|
| }
|
|
|
|
|