diff options
Diffstat (limited to 'chrome/browser/web_data_service_factory.h')
-rw-r--r-- | chrome/browser/web_data_service_factory.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/chrome/browser/web_data_service_factory.h b/chrome/browser/web_data_service_factory.h new file mode 100644 index 0000000..23565eb --- /dev/null +++ b/chrome/browser/web_data_service_factory.h @@ -0,0 +1,78 @@ +// 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_WEB_DATA_SERVICE_FACTORY_H_ +#define CHROME_BROWSER_WEB_DATA_SERVICE_FACTORY_H_ + +#include "base/macros.h" +#include "base/memory/ref_counted.h" +#include "components/keyed_service/content/browser_context_keyed_service_factory.h" +#include "components/keyed_service/core/service_access_type.h" + +template <typename T> struct DefaultSingletonTraits; +class KeywordWebDataService; +class Profile; +class TokenWebData; +class WebDataServiceWrapper; + +#if defined(OS_WIN) +class PasswordWebDataService; +#endif + +namespace autofill { +class AutofillWebDataService; +} + +// Singleton that owns all WebDataServiceWrappers and associates them with +// Profiles. +class WebDataServiceFactory : public BrowserContextKeyedServiceFactory { + public: + // Returns the WebDataServiceWrapper associated with the |profile|. + static WebDataServiceWrapper* GetForProfile(Profile* profile, + ServiceAccessType access_type); + + static WebDataServiceWrapper* GetForProfileIfExists( + Profile* profile, + ServiceAccessType access_type); + + // Returns the AutofillWebDataService associated with the |profile|. + static scoped_refptr<autofill::AutofillWebDataService> + GetAutofillWebDataForProfile(Profile* profile, ServiceAccessType access_type); + + // Returns the KeywordWebDataService associated with the |profile|. + static scoped_refptr<KeywordWebDataService> GetKeywordWebDataForProfile( + Profile* profile, + ServiceAccessType access_type); + + // Returns the TokenWebData associated with the |profile|. + static scoped_refptr<TokenWebData> GetTokenWebDataForProfile( + Profile* profile, + ServiceAccessType access_type); + +#if defined(OS_WIN) + // Returns the PasswordWebDataService associated with the |profile|. + static scoped_refptr<PasswordWebDataService> GetPasswordWebDataForProfile( + Profile* profile, + ServiceAccessType access_type); +#endif + + static WebDataServiceFactory* GetInstance(); + + private: + friend struct DefaultSingletonTraits<WebDataServiceFactory>; + + WebDataServiceFactory(); + ~WebDataServiceFactory() override; + + // |BrowserContextKeyedBaseFactory| methods: + content::BrowserContext* GetBrowserContextToUse( + content::BrowserContext* context) const override; + KeyedService* BuildServiceInstanceFor( + content::BrowserContext* profile) const override; + bool ServiceIsNULLWhileTesting() const override; + + DISALLOW_COPY_AND_ASSIGN(WebDataServiceFactory); +}; + +#endif // CHROME_BROWSER_WEB_DATA_SERVICE_FACTORY_H_ |