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

Side by Side Diff: ios/chrome/browser/signin/signin_manager_factory.cc

Issue 1257663002: iOS factories for SigninManager and GaiaCookieManagerService (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@fakeSigninManager
Patch Set: Created 5 years, 5 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ios/chrome/browser/signin/signin_manager_factory.h"
6
7 #include "base/memory/singleton.h"
8 #include "base/prefs/pref_registry_simple.h"
9 #include "base/time/time.h"
10 #include "components/keyed_service/ios/browser_state_dependency_manager.h"
11 #include "components/pref_registry/pref_registry_syncable.h"
12 #include "components/signin/core/browser/signin_manager.h"
13 #include "components/signin/core/common/signin_pref_names.h"
14 #include "ios/chrome/browser/application_context.h"
15 #include "ios/chrome/browser/signin/account_tracker_service_factory.h"
16 #include "ios/chrome/browser/signin/gaia_cookie_manager_service_factory.h"
17 #include "ios/chrome/browser/signin/oauth2_token_service_factory.h"
18 #include "ios/chrome/browser/signin/signin_client_factory.h"
19 #include "ios/public/provider/chrome/browser/browser_state/chrome_browser_state. h"
20
21 namespace ios {
22
23 SigninManagerFactory::SigninManagerFactory()
24 : BrowserStateKeyedServiceFactory(
25 "SigninManager",
26 BrowserStateDependencyManager::GetInstance()) {
27 DependsOn(SigninClientFactory::GetInstance());
28 DependsOn(ios::GaiaCookieManagerServiceFactory::GetInstance());
29 DependsOn(OAuth2TokenServiceFactory::GetInstance());
30 DependsOn(ios::AccountTrackerServiceFactory::GetInstance());
31 }
32
33 SigninManagerFactory::~SigninManagerFactory() {}
34
35 // static
36 SigninManager* SigninManagerFactory::GetForBrowserState(
37 ios::ChromeBrowserState* browser_state) {
38 return static_cast<SigninManager*>(
39 GetInstance()->GetServiceForBrowserState(browser_state, true));
40 }
41
42 // static
43 SigninManager* SigninManagerFactory::GetForBrowserStateIfExists(
44 ios::ChromeBrowserState* browser_state) {
45 return static_cast<SigninManager*>(
46 GetInstance()->GetServiceForBrowserState(browser_state, false));
47 }
48
49 // static
50 SigninManagerFactory* SigninManagerFactory::GetInstance() {
51 return Singleton<SigninManagerFactory>::get();
52 }
53
54 void SigninManagerFactory::RegisterBrowserStatePrefs(
55 user_prefs::PrefRegistrySyncable* registry) {
56 SigninManagerBase::RegisterProfilePrefs(registry);
57 }
58
59 // static
60 void SigninManagerFactory::RegisterPrefs(PrefRegistrySimple* registry) {
61 SigninManagerBase::RegisterPrefs(registry);
62 }
63
64 void SigninManagerFactory::AddObserver(Observer* observer) {
65 observer_list_.AddObserver(observer);
66 }
67
68 void SigninManagerFactory::RemoveObserver(Observer* observer) {
69 observer_list_.RemoveObserver(observer);
70 }
71
72 void SigninManagerFactory::NotifyObserversOfSigninManagerCreationForTesting(
73 SigninManagerBase* manager) {
74 FOR_EACH_OBSERVER(Observer, observer_list_, SigninManagerCreated(manager));
75 }
76
77 scoped_ptr<KeyedService> SigninManagerFactory::BuildServiceInstanceFor(
78 web::BrowserState* context) const {
79 SigninManagerBase* service = nullptr;
sdefresne 2015/07/24 12:38:46 I think it would be better to use "scoped_ptr<Sign
80 ios::ChromeBrowserState* chrome_browser_state =
81 ios::ChromeBrowserState::FromBrowserState(context);
82 SigninClient* client = SigninClientFactory::GetInstance()->GetForBrowserState(
sdefresne 2015/07/24 12:38:46 SigninClient::GetForBrowserState() is a static met
83 chrome_browser_state);
84 service = new SigninManager(
85 client,
sdefresne 2015/07/24 12:38:46 nit: why use a variable for SigninClient? why not
86 OAuth2TokenServiceFactory::GetForBrowserState(chrome_browser_state),
87 ios::AccountTrackerServiceFactory::GetForBrowserState(
88 chrome_browser_state),
89 ios::GaiaCookieManagerServiceFactory::GetForBrowserState(
90 chrome_browser_state));
91 service->Initialize(GetApplicationContext()->GetLocalState());
92 FOR_EACH_OBSERVER(Observer, observer_list_, SigninManagerCreated(service));
93 return make_scoped_ptr(service);
94 }
95
96 void SigninManagerFactory::BrowserStateShutdown(web::BrowserState* context) {
97 SigninManagerBase* manager = static_cast<SigninManagerBase*>(
sdefresne 2015/07/24 12:38:46 Why mix SigninManagerBase and SigninManager in the
98 GetServiceForBrowserState(context, false));
99 if (manager)
100 FOR_EACH_OBSERVER(Observer, observer_list_, SigninManagerShutdown(manager));
101 BrowserStateKeyedServiceFactory::BrowserStateShutdown(context);
102 }
103
104 } // namespace ios
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698