0

Make PrefStore observers checked.

Fixed: 352675237
Change-Id: Ic8b2ef8813beb9b0095cd7c51a5dd79f24818797
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5675537
Reviewed-by: Colin Blundell <blundell@chromium.org>
Reviewed-by: Dominic Battré <battre@chromium.org>
Commit-Queue: Jan Keitel <jkeitel@google.com>
Cr-Commit-Position: refs/heads/main@{#1326629}
This commit is contained in:
Jan Keitel
2024-07-12 08:55:57 +00:00
committed by Chromium LUCI CQ
parent 2ad4e0c087
commit ee4d521f92
12 changed files with 13 additions and 15 deletions

@ -84,7 +84,7 @@ class POLICY_EXPORT ConfigurationPolicyPrefStore
// Current policy preferences.
std::unique_ptr<PrefValueMap> prefs_;
base::ObserverList<PrefStore::Observer, true>::Unchecked observers_;
base::ObserverList<PrefStore::Observer, true> observers_;
};
} // namespace policy

@ -48,7 +48,7 @@ class COMPONENTS_PREFS_EXPORT DefaultPrefStore : public PrefStore {
PrefValueMap prefs_;
base::ObserverList<PrefStore::Observer, true>::Unchecked observers_;
base::ObserverList<PrefStore::Observer, true> observers_;
};
#endif // COMPONENTS_PREFS_DEFAULT_PREF_STORE_H_

@ -62,7 +62,7 @@ class COMPONENTS_PREFS_EXPORT InMemoryPrefStore : public PersistentPrefStore {
// Stores the preference values.
PrefValueMap prefs_;
base::ObserverList<PrefStore::Observer, true>::Unchecked observers_;
base::ObserverList<PrefStore::Observer, true> observers_;
};
#endif // COMPONENTS_PREFS_IN_MEMORY_PREF_STORE_H_

@ -201,7 +201,7 @@ class COMPONENTS_PREFS_EXPORT JsonPrefStore final
base::ImportantFileWriter writer_;
std::unique_ptr<PrefFilter> pref_filter_;
base::ObserverList<PrefStore::Observer, true>::Unchecked observers_;
base::ObserverList<PrefStore::Observer, true> observers_;
// Optional so we can differentiate `nullopt` from `nullptr`.
std::optional<std::unique_ptr<ReadErrorDelegate>> error_delegate_;

@ -88,7 +88,7 @@ class COMPONENTS_PREFS_EXPORT OverlayUserPrefStore
// persistent PrefStore.
bool ShallBeStoredInPersistent(std::string_view key) const;
base::ObserverList<PrefStore::Observer, true>::Unchecked observers_;
base::ObserverList<PrefStore::Observer, true> observers_;
std::unique_ptr<ObserverAdapter> ephemeral_pref_store_observer_;
std::unique_ptr<ObserverAdapter> persistent_pref_store_observer_;
scoped_refptr<PersistentPrefStore> ephemeral_user_pref_store_;

@ -9,6 +9,7 @@
#include <string_view>
#include "base/memory/ref_counted.h"
#include "base/observer_list_types.h"
#include "base/values.h"
#include "components/prefs/prefs_export.h"
@ -22,15 +23,12 @@
class COMPONENTS_PREFS_EXPORT PrefStore : public base::RefCounted<PrefStore> {
public:
// Observer interface for monitoring PrefStore.
class COMPONENTS_PREFS_EXPORT Observer {
class COMPONENTS_PREFS_EXPORT Observer : public base::CheckedObserver {
public:
// Called when the value for the given `key` in the store changes.
virtual void OnPrefValueChanged(std::string_view key) {}
// Notification about the PrefStore being fully initialized.
virtual void OnInitializationCompleted(bool succeeded) {}
protected:
virtual ~Observer() = default;
};
PrefStore() = default;

@ -125,7 +125,7 @@ class COMPONENTS_PREFS_EXPORT SegregatedPrefStore : public PersistentPrefStore {
// Optional so we can differentiate `nullopt` from `nullptr`.
std::optional<std::unique_ptr<PersistentPrefStore::ReadErrorDelegate>>
read_error_delegate_;
base::ObserverList<PrefStore::Observer, true>::Unchecked observers_;
base::ObserverList<PrefStore::Observer, true> observers_;
UnderlyingPrefStoreObserver default_observer_;
UnderlyingPrefStoreObserver selected_observer_;
};

@ -130,7 +130,7 @@ class TestingPrefStore : public PersistentPrefStore {
// Optional so we can differentiate `nullopt` from `nullptr`.
std::optional<std::unique_ptr<ReadErrorDelegate>> error_delegate_;
base::ObserverList<PrefStore::Observer, true>::Unchecked observers_;
base::ObserverList<PrefStore::Observer, true> observers_;
};
#endif // COMPONENTS_PREFS_TESTING_PREF_STORE_H_

@ -53,7 +53,7 @@ class COMPONENTS_PREFS_EXPORT ValueMapPrefStore : public WriteablePrefStore {
private:
PrefValueMap prefs_;
base::ObserverList<PrefStore::Observer, true>::Unchecked observers_;
base::ObserverList<PrefStore::Observer, true> observers_;
};
#endif // COMPONENTS_PREFS_VALUE_MAP_PREF_STORE_H_

@ -86,7 +86,7 @@ class COMPONENTS_PREFS_EXPORT WrapWithPrefixPrefStore
scoped_refptr<PersistentPrefStore> target_pref_store_;
const std::string dotted_prefix_;
base::ObserverList<PrefStore::Observer, true>::Unchecked observers_;
base::ObserverList<PrefStore::Observer, true> observers_;
// Optional so we can differentiate `nullopt` from `nullptr`.
std::optional<std::unique_ptr<PersistentPrefStore::ReadErrorDelegate>>

@ -62,7 +62,7 @@ class SupervisedUserPrefStore : public PrefStore {
std::unique_ptr<PrefValueMap> prefs_;
base::ObserverList<PrefStore::Observer, true>::Unchecked observers_;
base::ObserverList<PrefStore::Observer, true> observers_;
};
#endif // COMPONENTS_SUPERVISED_USER_CORE_BROWSER_SUPERVISED_USER_PREF_STORE_H_

@ -219,7 +219,7 @@ class DualLayerUserPrefStore : public PersistentPrefStore,
bool is_history_sync_enabled_ = false;
base::ObserverList<PrefStore::Observer, true>::Unchecked observers_;
base::ObserverList<PrefStore::Observer, true> observers_;
const scoped_refptr<PrefModelAssociatorClient> pref_model_associator_client_;
};