#ifndef IOS_WEB_VIEW_INTERNAL_SYNC_WEB_VIEW_SYNC_CLIENT_H_
#define IOS_WEB_VIEW_INTERNAL_SYNC_WEB_VIEW_SYNC_CLIENT_H_
#include <memory>
#include "components/browser_sync/sync_engine_factory_impl.h"
#include "components/sync/service/sync_client.h"
namespace syncer {
class DeviceInfoSyncService;
class DataTypeStoreService;
}
namespace ios_web_view {
class WebViewSyncClient : public syncer::SyncClient {
public:
explicit WebViewSyncClient(
PrefService* pref_service,
signin::IdentityManager* identity_manager,
syncer::DataTypeStoreService* data_type_store_service,
syncer::DeviceInfoSyncService* device_info_sync_service,
syncer::SyncInvalidationsService* sync_invalidations_service);
WebViewSyncClient(const WebViewSyncClient&) = delete;
WebViewSyncClient& operator=(const WebViewSyncClient&) = delete;
~WebViewSyncClient() override;
PrefService* GetPrefService() override;
signin::IdentityManager* GetIdentityManager() override;
base::FilePath GetLocalSyncBackendFolder() override;
syncer::SyncInvalidationsService* GetSyncInvalidationsService() override;
trusted_vault::TrustedVaultClient* GetTrustedVaultClient() override;
scoped_refptr<syncer::ExtensionsActivity> GetExtensionsActivity() override;
syncer::SyncEngineFactory* GetSyncEngineFactory() override;
bool IsCustomPassphraseAllowed() override;
void RegisterTrustedVaultAutoUpgradeSyntheticFieldTrial(
const syncer::TrustedVaultAutoUpgradeSyntheticFieldTrialGroup& group)
override;
private:
const raw_ptr<PrefService> pref_service_;
const raw_ptr<signin::IdentityManager> identity_manager_;
const raw_ptr<syncer::SyncInvalidationsService> sync_invalidations_service_;
browser_sync::SyncEngineFactoryImpl engine_factory_;
std::unique_ptr<trusted_vault::TrustedVaultClient> trusted_vault_client_;
};
}
#endif