profile_oauth2_token_service_factory.cc revision 7dbb3d5cf0c15f500944d211057644d6a2f37371
1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file.
4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/profiles/profile.h"
8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/signin/profile_oauth2_token_service.h"
9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/signin/token_service_factory.h"
107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "chrome/browser/ui/global_error/global_error_service_factory.h"
1190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "components/browser_context_keyed_service/browser_context_dependency_manager.h"
12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)ProfileOAuth2TokenServiceFactory::ProfileOAuth2TokenServiceFactory()
1490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    : BrowserContextKeyedServiceFactory(
1590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)        "ProfileOAuth2TokenService",
1690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)        BrowserContextDependencyManager::GetInstance()) {
177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  DependsOn(GlobalErrorServiceFactory::GetInstance());
18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  DependsOn(TokenServiceFactory::GetInstance());
19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
20c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
21c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)ProfileOAuth2TokenServiceFactory::~ProfileOAuth2TokenServiceFactory() {
22c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
23c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#if defined(OS_ANDROID)
257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// static
267dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochAndroidProfileOAuth2TokenService*
277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch    ProfileOAuth2TokenServiceFactory::GetForProfile(Profile* profile) {
287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  return static_cast<AndroidProfileOAuth2TokenService*>(
297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch      GetInstance()->GetServiceForBrowserContext(profile, true));
307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}
317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#else
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// static
33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)ProfileOAuth2TokenService* ProfileOAuth2TokenServiceFactory::GetForProfile(
34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    Profile* profile) {
35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return static_cast<ProfileOAuth2TokenService*>(
3690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)      GetInstance()->GetServiceForBrowserContext(profile, true));
37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif  // defined(OS_ANDROID)
39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// static
41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)ProfileOAuth2TokenServiceFactory*
42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    ProfileOAuth2TokenServiceFactory::GetInstance() {
43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return Singleton<ProfileOAuth2TokenServiceFactory>::get();
44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
45c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
4690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)BrowserContextKeyedService*
4790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)ProfileOAuth2TokenServiceFactory::BuildServiceInstanceFor(
48c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    content::BrowserContext* context) const {
49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  Profile* profile = static_cast<Profile*>(context);
50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  ProfileOAuth2TokenService* service;
51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#if defined(OS_ANDROID)
52c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  service = new AndroidProfileOAuth2TokenService(profile->GetRequestContext());
53c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#else
54c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  service = new ProfileOAuth2TokenService(profile->GetRequestContext());
55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#endif
56c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  service->Initialize(profile);
57c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  return service;
58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}
59