Chromium Code Reviews| Index: components/webdata_services/web_data_service_wrapper.h |
| diff --git a/components/webdata_services/web_data_service_wrapper.h b/components/webdata_services/web_data_service_wrapper.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..8a7c1255f1765e7cc2d1e9d06716ebc4494077f3 |
| --- /dev/null |
| +++ b/components/webdata_services/web_data_service_wrapper.h |
| @@ -0,0 +1,97 @@ |
| +// Copyright 2014 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 COMPONENTS_WEBDATA_SERVICES_WEB_DATA_SERVICE_WRAPPER_H_ |
| +#define COMPONENTS_WEBDATA_SERVICES_WEB_DATA_SERVICE_WRAPPER_H_ |
| + |
| +#include <string> |
| + |
| +#include "base/callback_forward.h" |
| +#include "base/macros.h" |
| +#include "base/memory/ref_counted.h" |
| +#include "components/keyed_service/core/keyed_service.h" |
| +#include "components/webdata_services/webdata_services_export.h" |
| +#include "sql/init_status.h" |
| + |
| +class KeywordWebDataService; |
| +class TokenWebData; |
| +class WebDatabaseService; |
| + |
| +#if defined(OS_WIN) |
| +class PasswordWebDataService; |
| +#endif |
| + |
| +namespace autofill { |
| +class AutofillWebDataBackend; |
| +class AutofillWebDataService; |
| +} // namespace autofill |
| + |
| +namespace base { |
| +class FilePath; |
| +class MessageLoopProxy; |
| +} // namespace base |
| + |
| +// WebDataServiceWrapper is a KeyedService that owns multiple WebDataService |
|
Peter Kasting
2014/12/05 21:47:56
Nit: multiple WebDataServices
sdefresne
2014/12/08 10:54:42
Done.
|
| +// so that they can be associated with a context. |
| +class WEBDATA_SERVICES_EXPORT WebDataServiceWrapper : public KeyedService { |
| + public: |
| + // ErrorType indicates which web-data service encountered an error |
|
Peter Kasting
2014/12/05 21:47:56
Nit: Remove "web-data"
sdefresne
2014/12/08 10:54:42
Done.
|
| + // loading its data. |
| + enum ErrorType { |
| + ERROR_DB_AUTOFILL_WEB_DATA, |
|
Peter Kasting
2014/12/05 21:47:56
Nit: I wonder if "ERROR_LOADING_AUTOFILL" or the l
sdefresne
2014/12/08 10:54:42
Done.
sdefresne
2014/12/08 10:54:42
Done.
|
| + ERROR_DB_KEYWORD_WEB_DATA, |
| + ERROR_DB_TOKEN_WEB_DATA, |
| + ERROR_DB_PASSWORD_WEB_DATA, |
| + }; |
| + |
| + // Presents an error message corresponding to the inability of loading |
| + // some of the web-data service data. |
|
Peter Kasting
2014/12/05 21:47:56
Nit: How about: "Shows an error message if a loadi
sdefresne
2014/12/08 10:54:42
Done.
|
| + using ShowErrorCallback = void (*)(ErrorType, sql::InitStatus); |
| + |
| + WebDataServiceWrapper(const base::FilePath& profile_path, |
| + const std::string& application_locale, |
| + const scoped_refptr<base::MessageLoopProxy>& ui_thread, |
| + const scoped_refptr<base::MessageLoopProxy>& db_thread, |
| + ShowErrorCallback show_error_callback); |
| + ~WebDataServiceWrapper() override; |
| + |
| + // For testing. |
| + WebDataServiceWrapper(); |
| + |
| + // KeyedService: |
| + void Shutdown() override; |
| + |
| + // Returns an autofill::AutofillWebDataService web-data service instance. |
| + // (virtual for testing) |
|
Peter Kasting
2014/12/05 21:47:56
Nit: I would remove this parenthetical note and th
sdefresne
2014/12/08 10:54:42
Done.
|
| + virtual scoped_refptr<autofill::AutofillWebDataService> GetAutofillWebData(); |
| + |
| + // Returns a KeywordWebDataService web-data service instance. |
| + // (virtual for testing) |
| + virtual scoped_refptr<KeywordWebDataService> GetKeywordWebData(); |
| + |
| + // Returns a TokenWebData web-data service instance. |
| + // (virtual for testing) |
| + virtual scoped_refptr<TokenWebData> GetTokenWebData(); |
| + |
| +#if defined(OS_WIN) |
| + // Returns a PasswordWebDataService web-data service instance. |
| + // (virtual for testing) |
| + virtual scoped_refptr<PasswordWebDataService> GetPasswordWebData(); |
| +#endif |
| + |
| + private: |
| + scoped_refptr<WebDatabaseService> web_database_; |
| + |
| + scoped_refptr<autofill::AutofillWebDataService> autofill_web_data_; |
| + scoped_refptr<KeywordWebDataService> keyword_web_data_; |
| + scoped_refptr<TokenWebData> token_web_data_; |
| + |
| +#if defined(OS_WIN) |
| + scoped_refptr<PasswordWebDataService> password_web_data_; |
| +#endif |
| + |
| + DISALLOW_COPY_AND_ASSIGN(WebDataServiceWrapper); |
| +}; |
| + |
| +#endif // COMPONENTS_WEBDATA_SERVICES_WEB_DATA_SERVICE_WRAPPER_H_ |