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:

committed by
Chromium LUCI CQ

parent
2ad4e0c087
commit
ee4d521f92
components
policy
core
prefs
default_pref_store.hin_memory_pref_store.hjson_pref_store.hoverlay_user_pref_store.hpref_store.hsegregated_pref_store.htesting_pref_store.hvalue_map_pref_store.hwrap_with_prefix_pref_store.h
supervised_user
core
browser
sync_preferences
@ -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_;
|
||||
};
|
||||
|
Reference in New Issue
Block a user