/chromium-webcl/src/chrome/browser/password_manager/password_store_factory.h
https://bitbucket.org/peixuan/chromium_r197479_base · C Header · 55 lines · 32 code · 12 blank · 11 comment · 4 complexity · 662327c125a18752f04d57985d3188e2 MD5 · raw file
- // Copyright (c) 2012 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_FACTORY_H_
- #define CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_FACTORY_H_
- #include "base/basictypes.h"
- #include "base/memory/singleton.h"
- #include "chrome/browser/profiles/profile.h"
- #include "chrome/browser/profiles/refcounted_profile_keyed_service_factory.h"
- class PasswordStore;
- class PrefRegistrySyncable;
- class Profile;
- #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX)
- // Local profile ids are used to associate resources stored outside the profile
- // directory, like saved passwords in GNOME Keyring / KWallet, with a profile.
- // With high probability, they are unique on the local machine. They are almost
- // certainly not unique globally, by design. Do not send them over the network.
- typedef int LocalProfileId;
- #endif
- // Singleton that owns all PasswordStores and associates them with
- // Profiles. Listens for the Profile's destruction notification and cleans up
- // the associated PasswordStore.
- class PasswordStoreFactory : public RefcountedProfileKeyedServiceFactory {
- public:
- static scoped_refptr<PasswordStore> GetForProfile(
- Profile* profile, Profile::ServiceAccessType set);
- static PasswordStoreFactory* GetInstance();
- private:
- friend struct DefaultSingletonTraits<PasswordStoreFactory>;
- PasswordStoreFactory();
- virtual ~PasswordStoreFactory();
- #if !defined(OS_MACOSX) && !defined(OS_CHROMEOS) && defined(OS_POSIX)
- LocalProfileId GetLocalProfileId(PrefService* prefs) const;
- #endif
- // ProfileKeyedServiceFactory:
- virtual scoped_refptr<RefcountedProfileKeyedService> BuildServiceInstanceFor(
- content::BrowserContext* context) const OVERRIDE;
- virtual void RegisterUserPrefs(PrefRegistrySyncable* registry) OVERRIDE;
- virtual bool ServiceRedirectedInIncognito() const OVERRIDE;
- virtual bool ServiceIsNULLWhileTesting() const OVERRIDE;
- DISALLOW_COPY_AND_ASSIGN(PasswordStoreFactory);
- };
- #endif // CHROME_BROWSER_PASSWORD_MANAGER_PASSWORD_STORE_FACTORY_H_