From 7f075b3cea1f5ee038055d1522c1e0bea81d9a87 Mon Sep 17 00:00:00 2001 From: "bartfab@chromium.org" Date: Mon, 28 Apr 2014 17:36:30 +0000 Subject: [PATCH] Provide GCMService to TiclInvalidationService as an explicit dependency This CL further reduces TiclInvalidationService's dependency on Profile. Instead of TiclInvalidationService accessing the GCMProfileServiceFactory, it is now given an GCMService as an explicit dependency. BUG=362083 TEST=Updated unit tests Review URL: https://codereview.chromium.org/238983007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@266596 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/invalidation/invalidation_service_factory.cc | 2 ++ chrome/browser/invalidation/ticl_invalidation_service.cc | 7 +++---- chrome/browser/invalidation/ticl_invalidation_service.h | 6 ++++++ chrome/browser/invalidation/ticl_invalidation_service_unittest.cc | 5 +++++ 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/chrome/browser/invalidation/invalidation_service_factory.cc b/chrome/browser/invalidation/invalidation_service_factory.cc index 61b2e072dcfc..0b62bad48c5e 100644 --- a/chrome/browser/invalidation/invalidation_service_factory.cc +++ b/chrome/browser/invalidation/invalidation_service_factory.cc @@ -13,6 +13,7 @@ #include "chrome/browser/invalidation/invalidator_storage.h" #include "chrome/browser/invalidation/ticl_invalidation_service.h" #include "chrome/browser/profiles/profile.h" +#include "chrome/browser/services/gcm/gcm_profile_service.h" #include "chrome/browser/services/gcm/gcm_profile_service_factory.h" #include "chrome/browser/signin/profile_identity_provider.h" #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" @@ -120,6 +121,7 @@ KeyedService* InvalidationServiceFactory::BuildServiceInstanceFor( TiclInvalidationService* service = new TiclInvalidationService( identity_provider.Pass(), + gcm::GCMProfileServiceFactory::GetForProfile(profile), profile->GetRequestContext(), profile); service->Init(scoped_ptr( diff --git a/chrome/browser/invalidation/ticl_invalidation_service.cc b/chrome/browser/invalidation/ticl_invalidation_service.cc index 7b04a39cd433..6a96ee3b9341 100644 --- a/chrome/browser/invalidation/ticl_invalidation_service.cc +++ b/chrome/browser/invalidation/ticl_invalidation_service.cc @@ -11,7 +11,6 @@ #include "chrome/browser/invalidation/invalidation_service_util.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/services/gcm/gcm_profile_service.h" -#include "chrome/browser/services/gcm/gcm_profile_service_factory.h" #include "chrome/browser/services/gcm/gcm_service.h" #include "chrome/common/chrome_content_client.h" #include "chrome/common/chrome_switches.h" @@ -62,6 +61,7 @@ namespace invalidation { TiclInvalidationService::TiclInvalidationService( scoped_ptr identity_provider, + gcm::GCMService* gcm_service, const scoped_refptr& request_context, Profile* profile) : OAuth2TokenService::Consumer("ticl_invalidation"), @@ -70,6 +70,7 @@ TiclInvalidationService::TiclInvalidationService( invalidator_registrar_(new syncer::InvalidatorRegistrar()), request_access_token_backoff_(&kRequestAccessTokenBackoffPolicy), network_channel_type_(PUSH_CLIENT_CHANNEL), + gcm_service_(gcm_service), request_context_(request_context), logger_() {} @@ -390,10 +391,8 @@ void TiclInvalidationService::StartInvalidator( break; } case GCM_NETWORK_CHANNEL: { - gcm::GCMService* gcm_service = - gcm::GCMProfileServiceFactory::GetForProfile(profile_); gcm_invalidation_bridge_.reset(new GCMInvalidationBridge( - gcm_service, identity_provider_.get())); + gcm_service_, identity_provider_.get())); network_channel_creator = syncer::NonBlockingInvalidator::MakeGCMNetworkChannelCreator( request_context_, diff --git a/chrome/browser/invalidation/ticl_invalidation_service.h b/chrome/browser/invalidation/ticl_invalidation_service.h index c3af5715b228..6b99a90212d3 100644 --- a/chrome/browser/invalidation/ticl_invalidation_service.h +++ b/chrome/browser/invalidation/ticl_invalidation_service.h @@ -25,6 +25,10 @@ class Profile; +namespace gcm { +class GCMService; +} + namespace net { class URLRequestContextGetter; } @@ -57,6 +61,7 @@ class TiclInvalidationService : public base::NonThreadSafe, TiclInvalidationService( scoped_ptr identity_provider, + gcm::GCMService* gcm_service, const scoped_refptr& request_context, Profile* profile); virtual ~TiclInvalidationService(); @@ -145,6 +150,7 @@ class TiclInvalidationService : public base::NonThreadSafe, PrefChangeRegistrar pref_change_registrar_; InvalidationNetworkChannel network_channel_type_; + gcm::GCMService* gcm_service_; scoped_ptr gcm_invalidation_bridge_; scoped_refptr request_context_; diff --git a/chrome/browser/invalidation/ticl_invalidation_service_unittest.cc b/chrome/browser/invalidation/ticl_invalidation_service_unittest.cc index a4588a9daff0..44f33b05bbb7 100644 --- a/chrome/browser/invalidation/ticl_invalidation_service_unittest.cc +++ b/chrome/browser/invalidation/ticl_invalidation_service_unittest.cc @@ -8,6 +8,9 @@ #include "chrome/browser/invalidation/invalidation_service_factory.h" #include "chrome/browser/invalidation/invalidation_service_test_template.h" #include "chrome/browser/invalidation/invalidator_storage.h" +#include "chrome/browser/services/gcm/gcm_profile_service.h" +#include "chrome/browser/services/gcm/gcm_profile_service_factory.h" +#include "chrome/browser/services/gcm/gcm_service.h" #include "chrome/browser/signin/fake_profile_oauth2_token_service.h" #include "chrome/browser/signin/fake_signin_manager.h" #include "chrome/browser/signin/profile_identity_provider.h" @@ -46,6 +49,7 @@ class TiclInvalidationServiceTestDelegate { SigninManagerFactory::GetForProfile(profile_.get()), token_service_.get(), NULL)), + gcm::GCMProfileServiceFactory::GetForProfile(profile_.get()), profile_->GetRequestContext(), profile_.get())); } @@ -103,6 +107,7 @@ class TiclInvalidationServiceChannelTest : public ::testing::Test { fake_signin_manager_, token_service_.get(), NULL)); invalidation_service_.reset(new TiclInvalidationService( identity_provider.Pass(), + gcm::GCMProfileServiceFactory::GetForProfile(profile_.get()), profile_->GetRequestContext(), profile_.get())); invalidation_service_->Init(scoped_ptr( -- 2.11.4.GIT