Commit 9973fcb5 authored by Julie Jeongeun Kim's avatar Julie Jeongeun Kim Committed by Commit Bot

Convert TrackedPreferenceValidationDelegate to new Mojo types

This CL converts TrackedPreferenceValidationDelegatePtr and
TrackedPreferenceValidationDelegateRequest to new Mojo types.

It uses PendingRemote or Remote and ReceiverSet instead of
TrackedPreferenceValidationDelegatePtr and BindingSet.

Bug: 955171
Change-Id: Ia417d64fb7a05fd779795c5eb4c0ba7dbce209b1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1809288
Commit-Queue: Julie Kim <jkim@igalia.com>
Reviewed-by: default avatarSam McNally <sammc@chromium.org>
Reviewed-by: default avatarBo <boliu@chromium.org>
Reviewed-by: default avatarDominic Battré <battre@chromium.org>
Reviewed-by: default avatarDavid Roger <droger@chromium.org>
Reviewed-by: default avatarOksana Zhuravlova <oksamyt@chromium.org>
Cr-Commit-Position: refs/heads/master@{#698751}
parent 74381e33
...@@ -202,7 +202,7 @@ void AwBrowserContext::CreateUserPrefService() { ...@@ -202,7 +202,7 @@ void AwBrowserContext::CreateUserPrefService() {
pref_service_factory.set_user_prefs(base::MakeRefCounted<SegregatedPrefStore>( pref_service_factory.set_user_prefs(base::MakeRefCounted<SegregatedPrefStore>(
base::MakeRefCounted<InMemoryPrefStore>(), base::MakeRefCounted<InMemoryPrefStore>(),
base::MakeRefCounted<JsonPrefStore>(GetPrefStorePath()), persistent_prefs, base::MakeRefCounted<JsonPrefStore>(GetPrefStorePath()), persistent_prefs,
/*validation_delegate=*/nullptr)); mojo::Remote<::prefs::mojom::TrackedPreferenceValidationDelegate>()));
policy::URLBlacklistManager::RegisterProfilePrefs(pref_registry.get()); policy::URLBlacklistManager::RegisterProfilePrefs(pref_registry.get());
AwBrowserPolicyConnector* browser_policy_connector = AwBrowserPolicyConnector* browser_policy_connector =
......
...@@ -86,7 +86,7 @@ std::unique_ptr<PrefService> CreatePrefService() { ...@@ -86,7 +86,7 @@ std::unique_ptr<PrefService> CreatePrefService() {
pref_service_factory.set_user_prefs(base::MakeRefCounted<SegregatedPrefStore>( pref_service_factory.set_user_prefs(base::MakeRefCounted<SegregatedPrefStore>(
base::MakeRefCounted<InMemoryPrefStore>(), base::MakeRefCounted<InMemoryPrefStore>(),
base::MakeRefCounted<JsonPrefStore>(GetPrefStorePath()), persistent_prefs, base::MakeRefCounted<JsonPrefStore>(GetPrefStorePath()), persistent_prefs,
/*validation_delegate=*/nullptr)); mojo::Remote<::prefs::mojom::TrackedPreferenceValidationDelegate>()));
pref_service_factory.set_read_error_callback( pref_service_factory.set_read_error_callback(
base::BindRepeating(&HandleReadError)); base::BindRepeating(&HandleReadError));
......
...@@ -59,7 +59,6 @@ ...@@ -59,7 +59,6 @@
#include "content/public/browser/browser_context.h" #include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_thread.h" #include "content/public/browser/browser_thread.h"
#include "extensions/buildflags/buildflags.h" #include "extensions/buildflags/buildflags.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h" #include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "rlz/buildflags/buildflags.h" #include "rlz/buildflags/buildflags.h"
#include "services/preferences/public/cpp/tracked/configuration.h" #include "services/preferences/public/cpp/tracked/configuration.h"
...@@ -420,7 +419,8 @@ std::unique_ptr<PrefService> CreateLocalState( ...@@ -420,7 +419,8 @@ std::unique_ptr<PrefService> CreateLocalState(
std::unique_ptr<sync_preferences::PrefServiceSyncable> CreateProfilePrefs( std::unique_ptr<sync_preferences::PrefServiceSyncable> CreateProfilePrefs(
const base::FilePath& profile_path, const base::FilePath& profile_path,
prefs::mojom::TrackedPreferenceValidationDelegatePtr validation_delegate, mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
validation_delegate,
policy::PolicyService* policy_service, policy::PolicyService* policy_service,
SupervisedUserSettingsService* supervised_user_settings, SupervisedUserSettingsService* supervised_user_settings,
scoped_refptr<PrefStore> extension_prefs, scoped_refptr<PrefStore> extension_prefs,
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "components/prefs/persistent_pref_store.h" #include "components/prefs/persistent_pref_store.h"
#include "components/prefs/pref_value_store.h" #include "components/prefs/pref_value_store.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "services/preferences/public/mojom/tracked_preference_validation_delegate.mojom-forward.h" #include "services/preferences/public/mojom/tracked_preference_validation_delegate.mojom-forward.h"
namespace base { namespace base {
...@@ -75,7 +76,8 @@ std::unique_ptr<PrefService> CreateLocalState( ...@@ -75,7 +76,8 @@ std::unique_ptr<PrefService> CreateLocalState(
std::unique_ptr<sync_preferences::PrefServiceSyncable> CreateProfilePrefs( std::unique_ptr<sync_preferences::PrefServiceSyncable> CreateProfilePrefs(
const base::FilePath& pref_filename, const base::FilePath& pref_filename,
prefs::mojom::TrackedPreferenceValidationDelegatePtr validation_delegate, mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
validation_delegate,
policy::PolicyService* policy_service, policy::PolicyService* policy_service,
SupervisedUserSettingsService* supervised_user_settings, SupervisedUserSettingsService* supervised_user_settings,
scoped_refptr<PrefStore> extension_prefs, scoped_refptr<PrefStore> extension_prefs,
......
...@@ -90,7 +90,8 @@ PersistentPrefStore* ProfilePrefStoreManager::CreateProfilePrefStore( ...@@ -90,7 +90,8 @@ PersistentPrefStore* ProfilePrefStoreManager::CreateProfilePrefStore(
scoped_refptr<base::SequencedTaskRunner> io_task_runner, scoped_refptr<base::SequencedTaskRunner> io_task_runner,
mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver> mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver>
reset_on_load_observer, reset_on_load_observer,
prefs::mojom::TrackedPreferenceValidationDelegatePtr validation_delegate) { mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
validation_delegate) {
if (!kPlatformSupportsPreferenceTracking) { if (!kPlatformSupportsPreferenceTracking) {
return new JsonPrefStore(profile_path_.Append(chrome::kPreferencesFilename), return new JsonPrefStore(profile_path_.Append(chrome::kPreferencesFilename),
nullptr, io_task_runner); nullptr, io_task_runner);
...@@ -115,7 +116,8 @@ bool ProfilePrefStoreManager::InitializePrefsFromMasterPrefs( ...@@ -115,7 +116,8 @@ bool ProfilePrefStoreManager::InitializePrefsFromMasterPrefs(
if (kPlatformSupportsPreferenceTracking) { if (kPlatformSupportsPreferenceTracking) {
InitializeMasterPrefsTracking( InitializeMasterPrefsTracking(
CreateTrackedPrefStoreConfiguration(std::move(tracking_configuration), CreateTrackedPrefStoreConfiguration(std::move(tracking_configuration),
reporting_ids_count, {}, nullptr), reporting_ids_count, {},
mojo::NullRemote()),
master_prefs.get()); master_prefs.get());
} }
...@@ -141,7 +143,8 @@ ProfilePrefStoreManager::CreateTrackedPrefStoreConfiguration( ...@@ -141,7 +143,8 @@ ProfilePrefStoreManager::CreateTrackedPrefStoreConfiguration(
size_t reporting_ids_count, size_t reporting_ids_count,
mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver> mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver>
reset_on_load_observer, reset_on_load_observer,
prefs::mojom::TrackedPreferenceValidationDelegatePtr validation_delegate) { mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
validation_delegate) {
return prefs::mojom::TrackedPersistentPrefStoreConfiguration::New( return prefs::mojom::TrackedPersistentPrefStoreConfiguration::New(
profile_path_.Append(chrome::kPreferencesFilename), profile_path_.Append(chrome::kPreferencesFilename),
profile_path_.Append(chrome::kSecurePreferencesFilename), profile_path_.Append(chrome::kSecurePreferencesFilename),
...@@ -154,5 +157,5 @@ ProfilePrefStoreManager::CreateTrackedPrefStoreConfiguration( ...@@ -154,5 +157,5 @@ ProfilePrefStoreManager::CreateTrackedPrefStoreConfiguration(
#else #else
base::string16(), base::string16(),
#endif #endif
validation_delegate.PassInterface(), std::move(reset_on_load_observer)); std::move(validation_delegate), std::move(reset_on_load_observer));
} }
...@@ -88,7 +88,8 @@ class ProfilePrefStoreManager { ...@@ -88,7 +88,8 @@ class ProfilePrefStoreManager {
scoped_refptr<base::SequencedTaskRunner> io_task_runner, scoped_refptr<base::SequencedTaskRunner> io_task_runner,
mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver> mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver>
reset_on_load_observer, reset_on_load_observer,
prefs::mojom::TrackedPreferenceValidationDelegatePtr validation_delegate); mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
validation_delegate);
// Initializes the preferences for the managed profile with the preference // Initializes the preferences for the managed profile with the preference
// values in |master_prefs|. Acts synchronously, including blocking IO. // values in |master_prefs|. Acts synchronously, including blocking IO.
...@@ -107,7 +108,8 @@ class ProfilePrefStoreManager { ...@@ -107,7 +108,8 @@ class ProfilePrefStoreManager {
size_t reporting_ids_count, size_t reporting_ids_count,
mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver> mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver>
reset_on_load_observer, reset_on_load_observer,
prefs::mojom::TrackedPreferenceValidationDelegatePtr validation_delegate, mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
validation_delegate,
service_manager::Connector* connector); service_manager::Connector* connector);
prefs::mojom::TrackedPersistentPrefStoreConfigurationPtr prefs::mojom::TrackedPersistentPrefStoreConfigurationPtr
...@@ -117,7 +119,8 @@ class ProfilePrefStoreManager { ...@@ -117,7 +119,8 @@ class ProfilePrefStoreManager {
size_t reporting_ids_count, size_t reporting_ids_count,
mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver> mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver>
reset_on_load_observer, reset_on_load_observer,
prefs::mojom::TrackedPreferenceValidationDelegatePtr validation_delegate); mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
validation_delegate);
const base::FilePath profile_path_; const base::FilePath profile_path_;
const std::string seed_; const std::string seed_;
......
...@@ -30,7 +30,6 @@ ...@@ -30,7 +30,6 @@
#include "components/prefs/pref_store.h" #include "components/prefs/pref_store.h"
#include "components/prefs/testing_pref_service.h" #include "components/prefs/testing_pref_service.h"
#include "content/public/common/service_names.mojom.h" #include "content/public/common/service_names.mojom.h"
#include "mojo/public/cpp/bindings/binding_set.h"
#include "mojo/public/cpp/bindings/pending_receiver.h" #include "mojo/public/cpp/bindings/pending_receiver.h"
#include "mojo/public/cpp/bindings/receiver_set.h" #include "mojo/public/cpp/bindings/receiver_set.h"
#include "services/preferences/public/cpp/pref_service_main.h" #include "services/preferences/public/cpp/pref_service_main.h"
...@@ -224,10 +223,11 @@ class ProfilePrefStoreManagerTest : public testing::Test, ...@@ -224,10 +223,11 @@ class ProfilePrefStoreManagerTest : public testing::Test,
mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver> observer; mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver> observer;
reset_on_load_observer_receivers_.Add( reset_on_load_observer_receivers_.Add(
this, observer.InitWithNewPipeAndPassReceiver()); this, observer.InitWithNewPipeAndPassReceiver());
prefs::mojom::TrackedPreferenceValidationDelegatePtr validation_delegate; mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
mock_validation_delegate_bindings_.AddBinding( validation_delegate;
mock_validation_delegate_receivers_.Add(
mock_validation_delegate_.get(), mock_validation_delegate_.get(),
mojo::MakeRequest(&validation_delegate)); validation_delegate.InitWithNewPipeAndPassReceiver());
scoped_refptr<PersistentPrefStore> pref_store = scoped_refptr<PersistentPrefStore> pref_store =
manager_->CreateProfilePrefStore( manager_->CreateProfilePrefStore(
prefs::CloneTrackedConfiguration(configuration_), kReportingIdCount, prefs::CloneTrackedConfiguration(configuration_), kReportingIdCount,
...@@ -278,10 +278,11 @@ class ProfilePrefStoreManagerTest : public testing::Test, ...@@ -278,10 +278,11 @@ class ProfilePrefStoreManagerTest : public testing::Test,
mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver> observer; mojo::PendingRemote<prefs::mojom::ResetOnLoadObserver> observer;
reset_on_load_observer_receivers_.Add( reset_on_load_observer_receivers_.Add(
this, observer.InitWithNewPipeAndPassReceiver()); this, observer.InitWithNewPipeAndPassReceiver());
prefs::mojom::TrackedPreferenceValidationDelegatePtr validation_delegate; mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
mock_validation_delegate_bindings_.AddBinding( validation_delegate;
mock_validation_delegate_receivers_.Add(
mock_validation_delegate_.get(), mock_validation_delegate_.get(),
mojo::MakeRequest(&validation_delegate)); validation_delegate.InitWithNewPipeAndPassReceiver());
pref_store_ = manager_->CreateProfilePrefStore( pref_store_ = manager_->CreateProfilePrefStore(
prefs::CloneTrackedConfiguration(configuration_), kReportingIdCount, prefs::CloneTrackedConfiguration(configuration_), kReportingIdCount,
base::ThreadTaskRunnerHandle::Get(), std::move(observer), base::ThreadTaskRunnerHandle::Get(), std::move(observer),
...@@ -335,8 +336,8 @@ class ProfilePrefStoreManagerTest : public testing::Test, ...@@ -335,8 +336,8 @@ class ProfilePrefStoreManagerTest : public testing::Test,
RegistryVerifier registry_verifier_; RegistryVerifier registry_verifier_;
scoped_refptr<MockValidationDelegateRecord> mock_validation_delegate_record_; scoped_refptr<MockValidationDelegateRecord> mock_validation_delegate_record_;
std::unique_ptr<MockValidationDelegate> mock_validation_delegate_; std::unique_ptr<MockValidationDelegate> mock_validation_delegate_;
mojo::BindingSet<prefs::mojom::TrackedPreferenceValidationDelegate> mojo::ReceiverSet<prefs::mojom::TrackedPreferenceValidationDelegate>
mock_validation_delegate_bindings_; mock_validation_delegate_receivers_;
std::unique_ptr<ProfilePrefStoreManager> manager_; std::unique_ptr<ProfilePrefStoreManager> manager_;
scoped_refptr<PersistentPrefStore> pref_store_; scoped_refptr<PersistentPrefStore> pref_store_;
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include "components/prefs/pref_value_store.h" #include "components/prefs/pref_value_store.h"
#include "components/sync_preferences/pref_service_syncable.h" #include "components/sync_preferences/pref_service_syncable.h"
#include "content/public/browser/network_service_instance.h" #include "content/public/browser/network_service_instance.h"
#include "mojo/public/cpp/bindings/strong_binding.h"
#include "services/preferences/public/cpp/in_process_service_factory.h" #include "services/preferences/public/cpp/in_process_service_factory.h"
#include "services/preferences/public/mojom/tracked_preference_validation_delegate.mojom.h" #include "services/preferences/public/mojom/tracked_preference_validation_delegate.mojom.h"
#include "ui/base/l10n/l10n_util.h" #include "ui/base/l10n/l10n_util.h"
...@@ -89,7 +88,7 @@ std::unique_ptr<sync_preferences::PrefServiceSyncable> CreatePrefService( ...@@ -89,7 +88,7 @@ std::unique_ptr<sync_preferences::PrefServiceSyncable> CreatePrefService(
PrefStore* extension_pref_store, PrefStore* extension_pref_store,
policy::PolicyService* policy_service, policy::PolicyService* policy_service,
policy::ChromeBrowserPolicyConnector* browser_policy_connector, policy::ChromeBrowserPolicyConnector* browser_policy_connector,
prefs::mojom::TrackedPreferenceValidationDelegatePtr mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
pref_validation_delegate, pref_validation_delegate,
scoped_refptr<base::SequencedTaskRunner> io_task_runner, scoped_refptr<base::SequencedTaskRunner> io_task_runner,
SimpleFactoryKey* key, SimpleFactoryKey* key,
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/scoped_refptr.h" #include "base/memory/scoped_refptr.h"
#include "build/build_config.h" #include "build/build_config.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "services/preferences/public/mojom/tracked_preference_validation_delegate.mojom.h" #include "services/preferences/public/mojom/tracked_preference_validation_delegate.mojom.h"
class PrefStore; class PrefStore;
...@@ -52,7 +53,7 @@ std::unique_ptr<sync_preferences::PrefServiceSyncable> CreatePrefService( ...@@ -52,7 +53,7 @@ std::unique_ptr<sync_preferences::PrefServiceSyncable> CreatePrefService(
PrefStore* extension_pref_store, PrefStore* extension_pref_store,
policy::PolicyService* policy_service, policy::PolicyService* policy_service,
policy::ChromeBrowserPolicyConnector* browser_policy_connector, policy::ChromeBrowserPolicyConnector* browser_policy_connector,
prefs::mojom::TrackedPreferenceValidationDelegatePtr mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
pref_validation_delegate, pref_validation_delegate,
scoped_refptr<base::SequencedTaskRunner> io_task_runner, scoped_refptr<base::SequencedTaskRunner> io_task_runner,
SimpleFactoryKey* key, SimpleFactoryKey* key,
......
...@@ -152,7 +152,8 @@ ...@@ -152,7 +152,8 @@
#include "content/public/common/content_constants.h" #include "content/public/common/content_constants.h"
#include "extensions/buildflags/buildflags.h" #include "extensions/buildflags/buildflags.h"
#include "google_apis/google_api_keys.h" #include "google_apis/google_api_keys.h"
#include "mojo/public/cpp/bindings/strong_binding.h" #include "mojo/public/cpp/bindings/pending_remote.h"
#include "mojo/public/cpp/bindings/self_owned_receiver.h"
#include "ppapi/buildflags/buildflags.h" #include "ppapi/buildflags/buildflags.h"
#include "printing/buildflags/buildflags.h" #include "printing/buildflags/buildflags.h"
#include "services/identity/identity_service.h" #include "services/identity/identity_service.h"
...@@ -622,15 +623,17 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) { ...@@ -622,15 +623,17 @@ void ProfileImpl::LoadPrefsForNormalStartup(bool async_prefs) {
g_browser_process->GetApplicationLocale(), g_browser_process->GetApplicationLocale(),
pref_registry_.get()); pref_registry_.get());
prefs::mojom::TrackedPreferenceValidationDelegatePtr pref_validation_delegate; mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
pref_validation_delegate;
scoped_refptr<safe_browsing::SafeBrowsingService> safe_browsing_service( scoped_refptr<safe_browsing::SafeBrowsingService> safe_browsing_service(
g_browser_process->safe_browsing_service()); g_browser_process->safe_browsing_service());
if (safe_browsing_service.get()) { if (safe_browsing_service.get()) {
auto pref_validation_delegate_impl = auto pref_validation_delegate_impl =
safe_browsing_service->CreatePreferenceValidationDelegate(this); safe_browsing_service->CreatePreferenceValidationDelegate(this);
if (pref_validation_delegate_impl) { if (pref_validation_delegate_impl) {
mojo::MakeStrongBinding(std::move(pref_validation_delegate_impl), mojo::MakeSelfOwnedReceiver(
mojo::MakeRequest(&pref_validation_delegate)); std::move(pref_validation_delegate_impl),
pref_validation_delegate.InitWithNewPipeAndPassReceiver());
} }
} }
......
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
#include "components/pref_registry/pref_registry_syncable.h" #include "components/pref_registry/pref_registry_syncable.h"
#include "components/sync_preferences/pref_service_syncable.h" #include "components/sync_preferences/pref_service_syncable.h"
#include "content/public/browser/network_service_instance.h" #include "content/public/browser/network_service_instance.h"
#include "mojo/public/cpp/bindings/pending_remote.h"
#include "services/preferences/public/cpp/in_process_service_factory.h" #include "services/preferences/public/cpp/in_process_service_factory.h"
#include "services/preferences/public/mojom/preferences.mojom.h" #include "services/preferences/public/mojom/preferences.mojom.h"
#include "services/preferences/public/mojom/tracked_preference_validation_delegate.mojom.h" #include "services/preferences/public/mojom/tracked_preference_validation_delegate.mojom.h"
...@@ -191,7 +192,8 @@ void StartupData::CreateServicesInternal() { ...@@ -191,7 +192,8 @@ void StartupData::CreateServicesInternal() {
chrome_feature_list_creator_->actual_locale(), chrome_feature_list_creator_->actual_locale(),
pref_registry_.get()); pref_registry_.get());
prefs::mojom::TrackedPreferenceValidationDelegatePtr pref_validation_delegate; mojo::PendingRemote<prefs::mojom::TrackedPreferenceValidationDelegate>
pref_validation_delegate;
// The preference tracking and protection is not required on Android. // The preference tracking and protection is not required on Android.
DCHECK(!ProfilePrefStoreManager::kPlatformSupportsPreferenceTracking); DCHECK(!ProfilePrefStoreManager::kPlatformSupportsPreferenceTracking);
......
...@@ -53,7 +53,8 @@ SegregatedPrefStore::SegregatedPrefStore( ...@@ -53,7 +53,8 @@ SegregatedPrefStore::SegregatedPrefStore(
const scoped_refptr<PersistentPrefStore>& default_pref_store, const scoped_refptr<PersistentPrefStore>& default_pref_store,
const scoped_refptr<PersistentPrefStore>& selected_pref_store, const scoped_refptr<PersistentPrefStore>& selected_pref_store,
const std::set<std::string>& selected_pref_names, const std::set<std::string>& selected_pref_names,
prefs::mojom::TrackedPreferenceValidationDelegatePtr validation_delegate) mojo::Remote<prefs::mojom::TrackedPreferenceValidationDelegate>
validation_delegate)
: validation_delegate_(std::move(validation_delegate)), : validation_delegate_(std::move(validation_delegate)),
default_pref_store_(default_pref_store), default_pref_store_(default_pref_store),
selected_pref_store_(selected_pref_store), selected_pref_store_(selected_pref_store),
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/observer_list.h" #include "base/observer_list.h"
#include "components/prefs/persistent_pref_store.h" #include "components/prefs/persistent_pref_store.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/preferences/public/mojom/tracked_preference_validation_delegate.mojom.h" #include "services/preferences/public/mojom/tracked_preference_validation_delegate.mojom.h"
// Provides a unified PersistentPrefStore implementation that splits its storage // Provides a unified PersistentPrefStore implementation that splits its storage
...@@ -45,7 +46,8 @@ class SegregatedPrefStore : public PersistentPrefStore { ...@@ -45,7 +46,8 @@ class SegregatedPrefStore : public PersistentPrefStore {
const scoped_refptr<PersistentPrefStore>& default_pref_store, const scoped_refptr<PersistentPrefStore>& default_pref_store,
const scoped_refptr<PersistentPrefStore>& selected_pref_store, const scoped_refptr<PersistentPrefStore>& selected_pref_store,
const std::set<std::string>& selected_pref_names, const std::set<std::string>& selected_pref_names,
prefs::mojom::TrackedPreferenceValidationDelegatePtr validation_delegate); mojo::Remote<prefs::mojom::TrackedPreferenceValidationDelegate>
validation_delegate);
// PrefStore implementation // PrefStore implementation
void AddObserver(Observer* observer) override; void AddObserver(Observer* observer) override;
...@@ -109,7 +111,8 @@ class SegregatedPrefStore : public PersistentPrefStore { ...@@ -109,7 +111,8 @@ class SegregatedPrefStore : public PersistentPrefStore {
// |validation_delegate_| is used by |default_pref_store_| and // |validation_delegate_| is used by |default_pref_store_| and
// |selected_pref_store_| PrefHashFilters. Its lifetime is managed here since // |selected_pref_store_| PrefHashFilters. Its lifetime is managed here since
// a single owner is required. // a single owner is required.
prefs::mojom::TrackedPreferenceValidationDelegatePtr validation_delegate_; mojo::Remote<prefs::mojom::TrackedPreferenceValidationDelegate>
validation_delegate_;
scoped_refptr<PersistentPrefStore> default_pref_store_; scoped_refptr<PersistentPrefStore> default_pref_store_;
scoped_refptr<PersistentPrefStore> selected_pref_store_; scoped_refptr<PersistentPrefStore> selected_pref_store_;
......
...@@ -83,8 +83,9 @@ class SegregatedPrefStoreTest ...@@ -83,8 +83,9 @@ class SegregatedPrefStoreTest
selected_pref_names.insert(kSelectedPref); selected_pref_names.insert(kSelectedPref);
selected_pref_names.insert(kSharedPref); selected_pref_names.insert(kSharedPref);
segregated_store_ = new SegregatedPrefStore(default_store_, selected_store_, segregated_store_ = new SegregatedPrefStore(
selected_pref_names, nullptr); default_store_, selected_store_, selected_pref_names,
mojo::Remote<prefs::mojom::TrackedPreferenceValidationDelegate>());
segregated_store_->AddObserver(&observer_); segregated_store_->AddObserver(&observer_);
} }
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "base/bind.h" #include "base/bind.h"
#include "components/prefs/json_pref_store.h" #include "components/prefs/json_pref_store.h"
#include "components/prefs/pref_filter.h" #include "components/prefs/pref_filter.h"
#include "mojo/public/cpp/bindings/remote.h"
#include "services/preferences/public/mojom/tracked_preference_validation_delegate.mojom.h" #include "services/preferences/public/mojom/tracked_preference_validation_delegate.mojom.h"
#include "services/preferences/tracked/pref_hash_filter.h" #include "services/preferences/tracked/pref_hash_filter.h"
#include "services/preferences/tracked/pref_hash_store_impl.h" #include "services/preferences/tracked/pref_hash_store_impl.h"
...@@ -101,7 +102,8 @@ PersistentPrefStore* CreateTrackedPersistentPrefStore( ...@@ -101,7 +102,8 @@ PersistentPrefStore* CreateTrackedPersistentPrefStore(
} }
#endif #endif
prefs::mojom::TrackedPreferenceValidationDelegatePtr validation_delegate; mojo::Remote<prefs::mojom::TrackedPreferenceValidationDelegate>
validation_delegate;
validation_delegate.Bind(std::move(config->validation_delegate)); validation_delegate.Bind(std::move(config->validation_delegate));
std::unique_ptr<PrefHashFilter> unprotected_pref_hash_filter( std::unique_ptr<PrefHashFilter> unprotected_pref_hash_filter(
new PrefHashFilter(CreatePrefHashStore(*config, false), new PrefHashFilter(CreatePrefHashStore(*config, false),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment