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

Side by Side Diff: chrome/browser/password_manager/password_store_factory.h

Issue 9703038: Profiles: Really fix refcounted services. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Forgot to save a file. >_< Created 8 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_FACTORY_H_ 5 #ifndef CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_FACTORY_H_
6 #define CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_FACTORY_H_ 6 #define CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_FACTORY_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/memory/singleton.h" 9 #include "base/memory/singleton.h"
10 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/browser/profiles/refcounted_profile_keyed_service_factory.h" 11 #include "chrome/browser/profiles/refcounted_profile_keyed_service_factory.h"
12 12
13 class PasswordStore; 13 class PasswordStore;
14 class Extension; 14 class Extension;
15 class Profile; 15 class Profile;
16 16
17 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX) 17 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX)
18 // Local profile ids are used to associate resources stored outside the profile 18 // Local profile ids are used to associate resources stored outside the profile
19 // directory, like saved passwords in GNOME Keyring / KWallet, with a profile. 19 // directory, like saved passwords in GNOME Keyring / KWallet, with a profile.
20 // With high probability, they are unique on the local machine. They are almost 20 // With high probability, they are unique on the local machine. They are almost
21 // certainly not unique globally, by design. Do not send them over the network. 21 // certainly not unique globally, by design. Do not send them over the network.
22 typedef int LocalProfileId; 22 typedef int LocalProfileId;
23 #endif 23 #endif
24 24
25 // Singleton that owns all PasswordStores and associates them with 25 // Singleton that owns all PasswordStores and associates them with
26 // Profiles. Listens for the Profile's destruction notification and cleans up 26 // Profiles. Listens for the Profile's destruction notification and cleans up
27 // the associated PasswordStore. 27 // the associated PasswordStore.
28 class PasswordStoreFactory : public RefcountedProfileKeyedServiceFactory { 28 class PasswordStoreFactory : public RefcountedProfileKeyedServiceFactory {
29 public: 29 public:
30 static PasswordStore* GetForProfile(Profile* profile, 30 static scoped_refptr<PasswordStore> GetForProfile(
31 Profile::ServiceAccessType set); 31 Profile* profile, Profile::ServiceAccessType set);
32 32
33 static PasswordStoreFactory* GetInstance(); 33 static PasswordStoreFactory* GetInstance();
34 34
35 private: 35 private:
36 friend struct DefaultSingletonTraits<PasswordStoreFactory>; 36 friend struct DefaultSingletonTraits<PasswordStoreFactory>;
37 37
38 PasswordStoreFactory(); 38 PasswordStoreFactory();
39 virtual ~PasswordStoreFactory(); 39 virtual ~PasswordStoreFactory();
40 40
41 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX) 41 #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX)
42 LocalProfileId GetLocalProfileId(PrefService* prefs) const; 42 LocalProfileId GetLocalProfileId(PrefService* prefs) const;
43 #endif 43 #endif
44 44
45 // ProfileKeyedServiceFactory: 45 // ProfileKeyedServiceFactory:
46 virtual RefcountedProfileKeyedService* BuildServiceInstanceFor( 46 virtual scoped_refptr<RefcountedProfileKeyedService> BuildServiceInstanceFor(
47 Profile* profile) const OVERRIDE; 47 Profile* profile) const OVERRIDE;
48 virtual void RegisterUserPrefs(PrefService* prefs) OVERRIDE; 48 virtual void RegisterUserPrefs(PrefService* prefs) OVERRIDE;
49 virtual bool ServiceRedirectedInIncognito() OVERRIDE; 49 virtual bool ServiceRedirectedInIncognito() OVERRIDE;
50 virtual bool ServiceIsNULLWhileTesting() OVERRIDE; 50 virtual bool ServiceIsNULLWhileTesting() OVERRIDE;
51 51
52 DISALLOW_COPY_AND_ASSIGN(PasswordStoreFactory); 52 DISALLOW_COPY_AND_ASSIGN(PasswordStoreFactory);
53 }; 53 };
54 54
55 #endif // CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_FACTORY_H_ 55 #endif // CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_FACTORY_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698