#include "components/webdata_services/web_data_service_wrapper.h"
#include <memory>
#include "base/feature_list.h"
#include "base/files/file_path.h"
#include "base/functional/bind.h"
#include "base/functional/callback.h"
#include "base/task/sequenced_task_runner.h"
#include "base/task/thread_pool.h"
#include "build/build_config.h"
#include "components/autofill/core/browser/webdata/addresses/address_autofill_table.h"
#include "components/autofill/core/browser/webdata/addresses/autofill_profile_sync_bridge.h"
#include "components/autofill/core/browser/webdata/addresses/contact_info_sync_bridge.h"
#include "components/autofill/core/browser/webdata/autocomplete/autocomplete_sync_bridge.h"
#include "components/autofill/core/browser/webdata/autocomplete/autocomplete_table.h"
#include "components/autofill/core/browser/webdata/autofill_sync_metadata_table.h"
#include "components/autofill/core/browser/webdata/autofill_webdata_service.h"
#include "components/autofill/core/browser/webdata/payments/autofill_wallet_credential_sync_bridge.h"
#include "components/autofill/core/browser/webdata/payments/autofill_wallet_metadata_sync_bridge.h"
#include "components/autofill/core/browser/webdata/payments/autofill_wallet_offer_sync_bridge.h"
#include "components/autofill/core/browser/webdata/payments/autofill_wallet_sync_bridge.h"
#include "components/autofill/core/browser/webdata/payments/autofill_wallet_usage_data_sync_bridge.h"
#include "components/autofill/core/browser/webdata/payments/payments_autofill_table.h"
#include "components/autofill/core/common/autofill_features.h"
#include "components/autofill/core/common/autofill_payments_features.h"
#include "components/plus_addresses/webdata/plus_address_table.h"
#include "components/plus_addresses/webdata/plus_address_webdata_service.h"
#include "components/search_engines/keyword_table.h"
#include "components/search_engines/keyword_web_data_service.h"
#include "components/signin/public/webdata/token_service_table.h"
#include "components/signin/public/webdata/token_web_data.h"
#include "components/sync/base/features.h"
#include "components/webdata/common/web_database_service.h"
#include "components/webdata/common/webdata_constants.h"
#if BUILDFLAG(USE_BLINK)
#include "components/payments/content/payment_manifest_web_data_service.h"
#include "components/payments/content/payment_method_manifest_table.h"
#include "components/payments/content/web_app_manifest_section_table.h"
#endif
namespace {
void InitAutofillSyncBridgesOnDBSequence(
scoped_refptr<base::SequencedTaskRunner> db_task_runner,
const scoped_refptr<autofill::AutofillWebDataService>& autofill_web_data,
const std::string& app_locale,
autofill::AutofillWebDataBackend* autofill_backend) { … }
void InitWalletSyncBridgesOnDBSequence(
scoped_refptr<base::SequencedTaskRunner> db_task_runner,
const scoped_refptr<autofill::AutofillWebDataService>& autofill_web_data,
const std::string& app_locale,
autofill::AutofillWebDataBackend* autofill_backend) { … }
void InitWalletOfferSyncBridgeOnDBSequence(
scoped_refptr<base::SequencedTaskRunner> db_task_runner,
const scoped_refptr<autofill::AutofillWebDataService>& autofill_web_data,
autofill::AutofillWebDataBackend* autofill_backend) { … }
void InitWalletUsageDataSyncBridgeOnDBSequence(
scoped_refptr<base::SequencedTaskRunner> db_task_runner,
const scoped_refptr<autofill::AutofillWebDataService>& autofill_web_data,
autofill::AutofillWebDataBackend* autofill_backend) { … }
void InitWalletCredentialSyncBridgeOnDBSequence(
scoped_refptr<base::SequencedTaskRunner> db_task_runner,
const scoped_refptr<autofill::AutofillWebDataService>& autofill_web_data,
autofill::AutofillWebDataBackend* autofill_backend) { … }
}
WebDataServiceWrapper::WebDataServiceWrapper() { … }
WebDataServiceWrapper::WebDataServiceWrapper(
const base::FilePath& context_path,
const std::string& application_locale,
const scoped_refptr<base::SequencedTaskRunner>& ui_task_runner,
const ShowErrorCallback& show_error_callback) { … }
WebDataServiceWrapper::~WebDataServiceWrapper() = default;
void WebDataServiceWrapper::Shutdown() { … }
scoped_refptr<autofill::AutofillWebDataService>
WebDataServiceWrapper::GetProfileAutofillWebData() { … }
scoped_refptr<autofill::AutofillWebDataService>
WebDataServiceWrapper::GetAccountAutofillWebData() { … }
scoped_refptr<KeywordWebDataService>
WebDataServiceWrapper::GetKeywordWebData() { … }
scoped_refptr<plus_addresses::PlusAddressWebDataService>
WebDataServiceWrapper::GetPlusAddressWebData() { … }
scoped_refptr<TokenWebData> WebDataServiceWrapper::GetTokenWebData() { … }
#if BUILDFLAG(USE_BLINK)
scoped_refptr<payments::PaymentManifestWebDataService>
WebDataServiceWrapper::GetPaymentManifestWebData() { … }
#endif