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

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

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 2015 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 #ifndef IOS_CHROME_BROWSER_SIGNIN_SIGNIN_MANAGER_FACTORY_H_
6 #define IOS_CHROME_BROWSER_SIGNIN_SIGNIN_MANAGER_FACTORY_H_
7
8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h"
10 #include "base/observer_list.h"
11 #include "components/keyed_service/ios/browser_state_keyed_service_factory.h"
12
13 template <typename T>
14 struct DefaultSingletonTraits;
15
16 class SigninManager;
17 class SigninManagerBase;
18 class PrefRegistrySimple;
19
20 namespace ios {
21
22 class ChromeBrowserState;
23
24 // Singleton that owns all SigninManagers and associates them with browser
25 // states.
26 class SigninManagerFactory : public BrowserStateKeyedServiceFactory {
27 public:
28 class Observer {
sdefresne 2015/07/24 12:38:46 Can you move out of the factory so that it can be
29 public:
30 // Called when a SigninManager(Base) instance is created.
sdefresne 2015/07/24 12:38:46 Since you are writing this interface, why not dire
31 virtual void SigninManagerCreated(SigninManagerBase* manager) {}
32
33 // Called when a SigninManager(Base) instance is being shut down. Observers
34 // of |manager| should remove themselves at this point.
35 virtual void SigninManagerShutdown(SigninManagerBase* manager) {}
36
37 protected:
38 virtual ~Observer() {}
sdefresne 2015/07/24 12:38:46 I prefer to have public destructors on Observers s
39 };
sdefresne 2015/07/24 12:38:47 DISALLOW_COPY_AND_ASSIGN()
40
41 static SigninManager* GetForBrowserState(
42 ios::ChromeBrowserState* browser_state);
43 static SigninManager* GetForBrowserStateIfExists(
44 ios::ChromeBrowserState* browser_state);
45 // static const SigninManager* GetForBrowserStateIfExists(const
sdefresne 2015/07/24 12:38:46 Please remove.
46 // ios::ChromeBrowserState* browser_state);
47
48 // Returns an instance of the SigninManagerFactory singleton.
49 static SigninManagerFactory* GetInstance();
50
51 // Implementation of BrowserStateKeyedServiceFactory (public so tests
52 // can call it).
53 void RegisterBrowserStatePrefs(
54 user_prefs::PrefRegistrySyncable* registry) override;
55
56 // Registers the browser-global prefs used by SigninManager.
57 static void RegisterPrefs(PrefRegistrySimple* registry);
58
59 // Methods to register or remove observers of SigninManager creation/shutdown.
60 void AddObserver(Observer* observer);
61 void RemoveObserver(Observer* observer);
62
63 // Notifies observers of |manager|'s creation. Should be called only by test
64 // SigninManager subclasses whose construction does not occur in
65 // |BuildServiceInstanceFor()|.
66 void NotifyObserversOfSigninManagerCreationForTesting(
67 SigninManagerBase* manager);
68
69 private:
70 friend struct DefaultSingletonTraits<SigninManagerFactory>;
71
72 SigninManagerFactory();
73 ~SigninManagerFactory() override;
74
75 // List of observers. Checks that list is empty on destruction.
76 mutable base::ObserverList<Observer, true> observer_list_;
77
78 // BrowserStateKeyedServiceFactory:
79 scoped_ptr<KeyedService> BuildServiceInstanceFor(
80 web::BrowserState* context) const override;
81 void BrowserStateShutdown(web::BrowserState* context) override;
82 };
83 }
84
85 #endif // IOS_CHROME_BROWSER_SIGNIN_SIGNIN_MANAGER_FACTORY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698