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 69399d9b47119fb7a30be09b6015c14f8c5840c0..50d2de2b12c0d75707725f7584cb2f2ee34f83d1 100644 |
--- a/chrome/browser/services/gcm/gcm_profile_service.cc |
+++ b/chrome/browser/services/gcm/gcm_profile_service.cc |
@@ -22,16 +22,18 @@ |
#include "base/bind.h" |
#include "base/files/file_path.h" |
#include "base/memory/weak_ptr.h" |
-#include "chrome/browser/services/gcm/gcm_desktop_utils.h" |
#include "chrome/browser/signin/profile_oauth2_token_service_factory.h" |
#include "chrome/browser/signin/signin_manager_factory.h" |
#include "chrome/browser/ui/webui/signin/login_ui_service_factory.h" |
+#include "chrome/common/channel_info.h" |
#include "components/gcm_driver/gcm_account_tracker.h" |
#include "components/gcm_driver/gcm_channel_status_syncer.h" |
#include "components/gcm_driver/gcm_client_factory.h" |
+#include "components/gcm_driver/gcm_desktop_utils.h" |
#include "components/gcm_driver/gcm_driver_desktop.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" |
#include "google_apis/gaia/account_tracker.h" |
#include "google_apis/gaia/identity_provider.h" |
#include "net/url_request/url_request_context_getter.h" |
@@ -174,11 +176,24 @@ GCMProfileService::GCMProfileService( |
: profile_(profile) { |
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)); |
+ |
driver_ = CreateGCMDriverDesktop( |
gcm_client_factory.Pass(), |
profile_->GetPrefs(), |
profile_->GetPath().Append(chrome::kGCMStoreDirname), |
- profile_->GetRequestContext()); |
+ profile_->GetRequestContext(), |
+ chrome::GetChannel(), |
+ content::BrowserThread::GetMessageLoopProxyForThread( |
+ content::BrowserThread::UI), |
+ content::BrowserThread::GetMessageLoopProxyForThread( |
+ content::BrowserThread::IO), |
+ blocking_task_runner); |
identity_observer_.reset(new IdentityObserver(profile, driver_.get())); |
} |