Index: chrome/browser/services/gcm/gcm_profile_service.cc |
diff --git a/chrome/browser/services/gcm/gcm_profile_service.cc b/chrome/browser/services/gcm/gcm_profile_service.cc |
index 39283d9f31fbc060d24e3db7cb7c7c464518735a..eeda16cd66252e45f17b0fd67a73456c4019a3e6 100644 |
--- a/chrome/browser/services/gcm/gcm_profile_service.cc |
+++ b/chrome/browser/services/gcm/gcm_profile_service.cc |
@@ -19,6 +19,7 @@ |
#include "components/gcm_driver/gcm_client_factory.h" |
#include "components/pref_registry/pref_registry_syncable.h" |
#include "components/signin/core/browser/signin_manager.h" |
+#include "content/public/browser/browser_thread.h" |
#include "google_apis/gaia/identity_provider.h" |
#include "net/url_request/url_request_context_getter.h" |
@@ -81,6 +82,13 @@ GCMProfileService::GCMProfileService( |
: profile_(profile) { |
DCHECK(!profile->IsOffTheRecord()); |
+ scoped_refptr<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) |
LoginUIService* login_ui_service = NULL; |
#else |
@@ -94,7 +102,12 @@ GCMProfileService::GCMProfileService( |
ProfileOAuth2TokenServiceFactory::GetForProfile(profile_), |
login_ui_service)), |
profile_->GetPath().Append(chrome::kGCMStoreDirname), |
- profile_->GetRequestContext())); |
+ profile_->GetRequestContext(), |
+ content::BrowserThread::GetMessageLoopProxyForThread( |
+ content::BrowserThread::UI), |
+ content::BrowserThread::GetMessageLoopProxyForThread( |
+ content::BrowserThread::IO), |
+ blocking_task_runner)); |
} |
GCMProfileService::GCMProfileService() : profile_(NULL) { |