Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(377)

Unified Diff: chrome/browser/signin/profile_oauth2_token_service_factory.cc

Issue 148513010: Eliminate ProfileOAuth2TokenService being a BCKS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Response to review Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/signin/profile_oauth2_token_service_factory.cc
diff --git a/chrome/browser/signin/profile_oauth2_token_service_factory.cc b/chrome/browser/signin/profile_oauth2_token_service_factory.cc
index c8baf9eb598cf63fa61020bf92d29f7b3c5fd866..3ab15fe08edb981082800d3d1f47750b5722d27c 100644
--- a/chrome/browser/signin/profile_oauth2_token_service_factory.cc
+++ b/chrome/browser/signin/profile_oauth2_token_service_factory.cc
@@ -16,6 +16,40 @@
#include "chrome/browser/signin/mutable_profile_oauth2_token_service.h"
#endif
+class ProfileOAuth2TokenServiceWrapperImpl
+ : public ProfileOAuth2TokenServiceWrapper {
+ public:
+ explicit ProfileOAuth2TokenServiceWrapperImpl(Profile* profile);
+ virtual ~ProfileOAuth2TokenServiceWrapperImpl();
+
+ // ProfileOAuth2TokenServiceWrapper:
+ virtual ProfileOAuth2TokenService* GetProfileOAuth2TokenService() OVERRIDE;
+
+ // BrowserContextKeyedService:
+ virtual void Shutdown() OVERRIDE;
+
+ private:
+ scoped_ptr<ProfileOAuth2TokenService> profile_oauth2_token_service_;
+};
+
+ProfileOAuth2TokenServiceWrapperImpl::ProfileOAuth2TokenServiceWrapperImpl(
+ Profile* profile) {
+ profile_oauth2_token_service_.reset(new ProfileOAuth2TokenServiceFactory::
+ PlatformSpecificOAuth2TokenService());
+ profile_oauth2_token_service_->Initialize(profile);
+}
+
+ProfileOAuth2TokenServiceWrapperImpl::~ProfileOAuth2TokenServiceWrapperImpl() {}
+
+void ProfileOAuth2TokenServiceWrapperImpl::Shutdown() {
+ profile_oauth2_token_service_->Shutdown();
+}
+
+ProfileOAuth2TokenService*
+ProfileOAuth2TokenServiceWrapperImpl::GetProfileOAuth2TokenService() {
+ return profile_oauth2_token_service_.get();
+}
+
ProfileOAuth2TokenServiceFactory::ProfileOAuth2TokenServiceFactory()
: BrowserContextKeyedServiceFactory(
"ProfileOAuth2TokenService",
@@ -27,18 +61,24 @@ ProfileOAuth2TokenServiceFactory::ProfileOAuth2TokenServiceFactory()
ProfileOAuth2TokenServiceFactory::~ProfileOAuth2TokenServiceFactory() {
}
+// static
ProfileOAuth2TokenService*
ProfileOAuth2TokenServiceFactory::GetForProfile(Profile* profile) {
- return static_cast<ProfileOAuth2TokenService*>(
- GetInstance()->GetServiceForBrowserContext(profile, true));
+ ProfileOAuth2TokenServiceWrapper* wrapper =
+ static_cast<ProfileOAuth2TokenServiceWrapper*>(
+ GetInstance()->GetServiceForBrowserContext(profile, true));
+ if (!wrapper)
+ return NULL;
+ return wrapper->GetProfileOAuth2TokenService();
}
// static
ProfileOAuth2TokenServiceFactory::PlatformSpecificOAuth2TokenService*
ProfileOAuth2TokenServiceFactory::GetPlatformSpecificForProfile(
Profile* profile) {
- return static_cast<PlatformSpecificOAuth2TokenService*>(
- GetForProfile(profile));
+ ProfileOAuth2TokenService* service =
+ ProfileOAuth2TokenServiceFactory::GetForProfile(profile);
+ return static_cast<PlatformSpecificOAuth2TokenService*>(service);
}
// static
@@ -51,8 +91,5 @@ BrowserContextKeyedService*
ProfileOAuth2TokenServiceFactory::BuildServiceInstanceFor(
content::BrowserContext* context) const {
Profile* profile = static_cast<Profile*>(context);
- PlatformSpecificOAuth2TokenService* service =
- new PlatformSpecificOAuth2TokenService();
- service->Initialize(profile);
- return service;
+ return new ProfileOAuth2TokenServiceWrapperImpl(profile);
}

Powered by Google App Engine
This is Rietveld 408576698