Commit 073318e2 authored by Sylvain Defresne's avatar Sylvain Defresne Committed by Commit Bot

Convert components/prefs away from base::Bind/base::Callback

base::Bind/base::Callback are deprecated in favor of either
base::BindOnce/base::OnceCallback or base::BindRepeating/
base::RepeatingCallback (depending on whether the callback
is invoked once or multiple time).

Convert last uses of base::Bind/base::Callback in
components/prefs to the recommended methods/types.

Bug: 1007719
Change-Id: I50ed50f2a419ef4b7afcc65756e8a4a0c08a8933
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1844784
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Auto-Submit: Sylvain Defresne <sdefresne@chromium.org>
Reviewed-by: default avatarDominic Battré <battre@chromium.org>
Cr-Commit-Position: refs/heads/master@{#705508}
parent 6778866d
...@@ -732,8 +732,8 @@ class SuccessfulWriteReplyObserver { ...@@ -732,8 +732,8 @@ class SuccessfulWriteReplyObserver {
void SuccessfulWriteReplyObserver::ObserveNextWriteCallback( void SuccessfulWriteReplyObserver::ObserveNextWriteCallback(
JsonPrefStore* json_pref_store) { JsonPrefStore* json_pref_store) {
json_pref_store->RegisterOnNextSuccessfulWriteReply( json_pref_store->RegisterOnNextSuccessfulWriteReply(
base::Bind(&SuccessfulWriteReplyObserver::OnSuccessfulWrite, base::BindOnce(&SuccessfulWriteReplyObserver::OnSuccessfulWrite,
base::Unretained(this))); base::Unretained(this)));
} }
enum WriteCallbackObservationState { enum WriteCallbackObservationState {
...@@ -758,10 +758,10 @@ class WriteCallbacksObserver { ...@@ -758,10 +758,10 @@ class WriteCallbacksObserver {
WriteCallbackObservationState GetAndResetPostWriteObservationState(); WriteCallbackObservationState GetAndResetPostWriteObservationState();
JsonPrefStore::OnWriteCallbackPair GetCallbackPair() { JsonPrefStore::OnWriteCallbackPair GetCallbackPair() {
return std::make_pair( return std::make_pair(base::BindOnce(&WriteCallbacksObserver::OnPreWrite,
base::Bind(&WriteCallbacksObserver::OnPreWrite, base::Unretained(this)), base::Unretained(this)),
base::Bind(&WriteCallbacksObserver::OnPostWrite, base::BindOnce(&WriteCallbacksObserver::OnPostWrite,
base::Unretained(this))); base::Unretained(this)));
} }
void OnPreWrite() { void OnPreWrite() {
...@@ -821,10 +821,10 @@ class JsonPrefStoreCallbackTest : public testing::Test { ...@@ -821,10 +821,10 @@ class JsonPrefStoreCallbackTest : public testing::Test {
void TriggerFakeWriteForCallback(JsonPrefStore* pref_store, bool success) { void TriggerFakeWriteForCallback(JsonPrefStore* pref_store, bool success) {
JsonPrefStore::PostWriteCallback( JsonPrefStore::PostWriteCallback(
base::Bind(&JsonPrefStore::RunOrScheduleNextSuccessfulWriteCallback, base::BindOnce(&JsonPrefStore::RunOrScheduleNextSuccessfulWriteCallback,
pref_store->AsWeakPtr()), pref_store->AsWeakPtr()),
base::Bind(&WriteCallbacksObserver::OnPostWrite, base::BindOnce(&WriteCallbacksObserver::OnPostWrite,
base::Unretained(&write_callback_observer_)), base::Unretained(&write_callback_observer_)),
base::SequencedTaskRunnerHandle::Get(), success); base::SequencedTaskRunnerHandle::Get(), success);
} }
......
...@@ -13,8 +13,8 @@ MockPrefChangeCallback::MockPrefChangeCallback(PrefService* prefs) ...@@ -13,8 +13,8 @@ MockPrefChangeCallback::MockPrefChangeCallback(PrefService* prefs)
MockPrefChangeCallback::~MockPrefChangeCallback() {} MockPrefChangeCallback::~MockPrefChangeCallback() {}
PrefChangeRegistrar::NamedChangeCallback MockPrefChangeCallback::GetCallback() { PrefChangeRegistrar::NamedChangeCallback MockPrefChangeCallback::GetCallback() {
return base::Bind(&MockPrefChangeCallback::OnPreferenceChanged, return base::BindRepeating(&MockPrefChangeCallback::OnPreferenceChanged,
base::Unretained(this)); base::Unretained(this));
} }
void MockPrefChangeCallback::Expect(const std::string& pref_name, void MockPrefChangeCallback::Expect(const std::string& pref_name,
......
...@@ -82,9 +82,10 @@ void PrefChangeRegistrar::OnPreferenceChanged(PrefService* service, ...@@ -82,9 +82,10 @@ void PrefChangeRegistrar::OnPreferenceChanged(PrefService* service,
observers_[pref].Run(pref); observers_[pref].Run(pref);
} }
void PrefChangeRegistrar::InvokeUnnamedCallback(base::OnceClosure callback, void PrefChangeRegistrar::InvokeUnnamedCallback(
const std::string& pref_name) { const base::RepeatingClosure& callback,
std::move(callback).Run(); const std::string& pref_name) {
callback.Run();
} }
PrefService* PrefChangeRegistrar::prefs() { PrefService* PrefChangeRegistrar::prefs() {
......
...@@ -67,7 +67,7 @@ class COMPONENTS_PREFS_EXPORT PrefChangeRegistrar final : public PrefObserver { ...@@ -67,7 +67,7 @@ class COMPONENTS_PREFS_EXPORT PrefChangeRegistrar final : public PrefObserver {
void OnPreferenceChanged(PrefService* service, void OnPreferenceChanged(PrefService* service,
const std::string& pref_name) override; const std::string& pref_name) override;
static void InvokeUnnamedCallback(base::OnceClosure callback, static void InvokeUnnamedCallback(const base::RepeatingClosure& callback,
const std::string& pref_name); const std::string& pref_name);
using ObserverMap = std::map<std::string, NamedChangeCallback>; using ObserverMap = std::map<std::string, NamedChangeCallback>;
......
...@@ -34,6 +34,12 @@ class MockPrefService : public TestingPrefServiceSimple { ...@@ -34,6 +34,12 @@ class MockPrefService : public TestingPrefServiceSimple {
MOCK_METHOD2(RemovePrefObserver, void(const std::string&, PrefObserver*)); MOCK_METHOD2(RemovePrefObserver, void(const std::string&, PrefObserver*));
}; };
// Due to overloads, base::DoNothing() cannot be passed directly to
// PrefChangeRegistrar::Add() as it is convertible to all callbacks.
base::RepeatingClosure DoNothingClosure() {
return base::DoNothing();
}
} // namespace } // namespace
class PrefChangeRegistrarTest : public testing::Test { class PrefChangeRegistrarTest : public testing::Test {
...@@ -44,8 +50,6 @@ class PrefChangeRegistrarTest : public testing::Test { ...@@ -44,8 +50,6 @@ class PrefChangeRegistrarTest : public testing::Test {
protected: protected:
void SetUp() override; void SetUp() override;
base::Closure observer() const { return base::DoNothing(); }
MockPrefService* service() const { return service_.get(); } MockPrefService* service() const { return service_.get(); }
private: private:
...@@ -65,8 +69,8 @@ TEST_F(PrefChangeRegistrarTest, AddAndRemove) { ...@@ -65,8 +69,8 @@ TEST_F(PrefChangeRegistrarTest, AddAndRemove) {
AddPrefObserver(Eq(std::string("test.pref.1")), &registrar)); AddPrefObserver(Eq(std::string("test.pref.1")), &registrar));
EXPECT_CALL(*service(), EXPECT_CALL(*service(),
AddPrefObserver(Eq(std::string("test.pref.2")), &registrar)); AddPrefObserver(Eq(std::string("test.pref.2")), &registrar));
registrar.Add("test.pref.1", observer()); registrar.Add("test.pref.1", DoNothingClosure());
registrar.Add("test.pref.2", observer()); registrar.Add("test.pref.2", DoNothingClosure());
EXPECT_FALSE(registrar.IsEmpty()); EXPECT_FALSE(registrar.IsEmpty());
// Test removing. // Test removing.
...@@ -91,7 +95,7 @@ TEST_F(PrefChangeRegistrarTest, AutoRemove) { ...@@ -91,7 +95,7 @@ TEST_F(PrefChangeRegistrarTest, AutoRemove) {
// Setup of auto-remove. // Setup of auto-remove.
EXPECT_CALL(*service(), EXPECT_CALL(*service(),
AddPrefObserver(Eq(std::string("test.pref.1")), &registrar)); AddPrefObserver(Eq(std::string("test.pref.1")), &registrar));
registrar.Add("test.pref.1", observer()); registrar.Add("test.pref.1", DoNothingClosure());
Mock::VerifyAndClearExpectations(service()); Mock::VerifyAndClearExpectations(service());
EXPECT_FALSE(registrar.IsEmpty()); EXPECT_FALSE(registrar.IsEmpty());
...@@ -108,8 +112,8 @@ TEST_F(PrefChangeRegistrarTest, RemoveAll) { ...@@ -108,8 +112,8 @@ TEST_F(PrefChangeRegistrarTest, RemoveAll) {
AddPrefObserver(Eq(std::string("test.pref.1")), &registrar)); AddPrefObserver(Eq(std::string("test.pref.1")), &registrar));
EXPECT_CALL(*service(), EXPECT_CALL(*service(),
AddPrefObserver(Eq(std::string("test.pref.2")), &registrar)); AddPrefObserver(Eq(std::string("test.pref.2")), &registrar));
registrar.Add("test.pref.1", observer()); registrar.Add("test.pref.1", DoNothingClosure());
registrar.Add("test.pref.2", observer()); registrar.Add("test.pref.2", DoNothingClosure());
Mock::VerifyAndClearExpectations(service()); Mock::VerifyAndClearExpectations(service());
EXPECT_CALL(*service(), EXPECT_CALL(*service(),
...@@ -136,10 +140,9 @@ class ObserveSetOfPreferencesTest : public testing::Test { ...@@ -136,10 +140,9 @@ class ObserveSetOfPreferencesTest : public testing::Test {
PrefChangeRegistrar* CreatePrefChangeRegistrar() { PrefChangeRegistrar* CreatePrefChangeRegistrar() {
PrefChangeRegistrar* pref_set = new PrefChangeRegistrar(); PrefChangeRegistrar* pref_set = new PrefChangeRegistrar();
base::Closure callback = base::DoNothing();
pref_set->Init(pref_service_.get()); pref_set->Init(pref_service_.get());
pref_set->Add(kHomePage, callback); pref_set->Add(kHomePage, DoNothingClosure());
pref_set->Add(kHomePageIsNewTabPage, callback); pref_set->Add(kHomePageIsNewTabPage, DoNothingClosure());
return pref_set; return pref_set;
} }
...@@ -175,9 +178,9 @@ TEST_F(ObserveSetOfPreferencesTest, Observe) { ...@@ -175,9 +178,9 @@ TEST_F(ObserveSetOfPreferencesTest, Observe) {
using testing::Mock; using testing::Mock;
PrefChangeRegistrar pref_set; PrefChangeRegistrar pref_set;
PrefChangeRegistrar::NamedChangeCallback callback = base::Bind( PrefChangeRegistrar::NamedChangeCallback callback =
&ObserveSetOfPreferencesTest::OnPreferenceChanged, base::BindRepeating(&ObserveSetOfPreferencesTest::OnPreferenceChanged,
base::Unretained(this)); base::Unretained(this));
pref_set.Init(pref_service_.get()); pref_set.Init(pref_service_.get());
pref_set.Add(kHomePage, callback); pref_set.Add(kHomePage, callback);
pref_set.Add(kHomePageIsNewTabPage, callback); pref_set.Add(kHomePageIsNewTabPage, callback);
......
...@@ -54,37 +54,37 @@ void PrefMemberBase::MoveToSequence( ...@@ -54,37 +54,37 @@ void PrefMemberBase::MoveToSequence(
VerifyValuePrefName(); VerifyValuePrefName();
// Load the value from preferences if it hasn't been loaded so far. // Load the value from preferences if it hasn't been loaded so far.
if (!internal()) if (!internal())
UpdateValueFromPref(base::Closure()); UpdateValueFromPref(base::OnceClosure());
internal()->MoveToSequence(std::move(task_runner)); internal()->MoveToSequence(std::move(task_runner));
} }
void PrefMemberBase::OnPreferenceChanged(PrefService* service, void PrefMemberBase::OnPreferenceChanged(PrefService* service,
const std::string& pref_name) { const std::string& pref_name) {
VerifyValuePrefName(); VerifyValuePrefName();
UpdateValueFromPref((!setting_value_ && !observer_.is_null()) ? UpdateValueFromPref((!setting_value_ && !observer_.is_null())
base::Bind(observer_, pref_name) : base::Closure()); ? base::BindOnce(observer_, pref_name)
: base::OnceClosure());
} }
void PrefMemberBase::UpdateValueFromPref(const base::Closure& callback) const { void PrefMemberBase::UpdateValueFromPref(base::OnceClosure callback) const {
VerifyValuePrefName(); VerifyValuePrefName();
const PrefService::Preference* pref = prefs_->FindPreference(pref_name_); const PrefService::Preference* pref = prefs_->FindPreference(pref_name_);
DCHECK(pref); DCHECK(pref);
if (!internal()) if (!internal())
CreateInternal(); CreateInternal();
internal()->UpdateValue(pref->GetValue()->DeepCopy(), internal()->UpdateValue(pref->GetValue()->DeepCopy(), pref->IsManaged(),
pref->IsManaged(), pref->IsUserModifiable(), std::move(callback));
pref->IsUserModifiable(),
callback);
} }
void PrefMemberBase::VerifyPref() const { void PrefMemberBase::VerifyPref() const {
VerifyValuePrefName(); VerifyValuePrefName();
if (!internal()) if (!internal())
UpdateValueFromPref(base::Closure()); UpdateValueFromPref(base::OnceClosure());
} }
void PrefMemberBase::InvokeUnnamedCallback(const base::Closure& callback, void PrefMemberBase::InvokeUnnamedCallback(
const std::string& pref_name) { const base::RepeatingClosure& callback,
const std::string& pref_name) {
callback.Run(); callback.Run();
} }
......
...@@ -46,7 +46,7 @@ class COMPONENTS_PREFS_EXPORT PrefMemberBase : public PrefObserver { ...@@ -46,7 +46,7 @@ class COMPONENTS_PREFS_EXPORT PrefMemberBase : public PrefObserver {
public: public:
// Type of callback you can register if you need to know the name of // Type of callback you can register if you need to know the name of
// the pref that is changing. // the pref that is changing.
typedef base::Callback<void(const std::string&)> NamedChangeCallback; using NamedChangeCallback = base::RepeatingCallback<void(const std::string&)>;
PrefService* prefs() { return prefs_; } PrefService* prefs() { return prefs_; }
const PrefService* prefs() const { return prefs_; } const PrefService* prefs() const { return prefs_; }
...@@ -123,7 +123,7 @@ class COMPONENTS_PREFS_EXPORT PrefMemberBase : public PrefObserver { ...@@ -123,7 +123,7 @@ class COMPONENTS_PREFS_EXPORT PrefMemberBase : public PrefObserver {
// This method is used to do the actual sync with the preference. // This method is used to do the actual sync with the preference.
// Note: it is logically const, because it doesn't modify the state // Note: it is logically const, because it doesn't modify the state
// seen by the outside world. It is just doing a lazy load behind the scenes. // seen by the outside world. It is just doing a lazy load behind the scenes.
void UpdateValueFromPref(const base::Closure& callback) const; void UpdateValueFromPref(base::OnceClosure callback) const;
// Verifies the preference name, and lazily loads the preference value if // Verifies the preference name, and lazily loads the preference value if
// it hasn't been loaded yet. // it hasn't been loaded yet.
...@@ -133,8 +133,8 @@ class COMPONENTS_PREFS_EXPORT PrefMemberBase : public PrefObserver { ...@@ -133,8 +133,8 @@ class COMPONENTS_PREFS_EXPORT PrefMemberBase : public PrefObserver {
virtual Internal* internal() const = 0; virtual Internal* internal() const = 0;
// Used to allow registering plain base::Closure callbacks. // Used to allow registering plain base::RepeatingClosure callbacks.
static void InvokeUnnamedCallback(const base::Closure& callback, static void InvokeUnnamedCallback(const base::RepeatingClosure& callback,
const std::string& pref_name); const std::string& pref_name);
private: private:
...@@ -173,10 +173,10 @@ class PrefMember : public subtle::PrefMemberBase { ...@@ -173,10 +173,10 @@ class PrefMember : public subtle::PrefMemberBase {
} }
void Init(const std::string& pref_name, void Init(const std::string& pref_name,
PrefService* prefs, PrefService* prefs,
const base::Closure& observer) { const base::RepeatingClosure& observer) {
subtle::PrefMemberBase::Init( subtle::PrefMemberBase::Init(
pref_name, prefs, pref_name, prefs,
base::Bind(&PrefMemberBase::InvokeUnnamedCallback, observer)); base::BindRepeating(&PrefMemberBase::InvokeUnnamedCallback, observer));
} }
void Init(const std::string& pref_name, PrefService* prefs) { void Init(const std::string& pref_name, PrefService* prefs) {
subtle::PrefMemberBase::Init(pref_name, prefs); subtle::PrefMemberBase::Init(pref_name, prefs);
......
...@@ -80,8 +80,8 @@ class PrefMemberTestClass { ...@@ -80,8 +80,8 @@ class PrefMemberTestClass {
explicit PrefMemberTestClass(PrefService* prefs) explicit PrefMemberTestClass(PrefService* prefs)
: observe_cnt_(0), prefs_(prefs) { : observe_cnt_(0), prefs_(prefs) {
str_.Init(kStringPref, prefs, str_.Init(kStringPref, prefs,
base::Bind(&PrefMemberTestClass::OnPreferenceChanged, base::BindRepeating(&PrefMemberTestClass::OnPreferenceChanged,
base::Unretained(this))); base::Unretained(this)));
} }
void OnPreferenceChanged(const std::string& pref_name) { void OnPreferenceChanged(const std::string& pref_name) {
......
...@@ -33,7 +33,7 @@ class PrefStore; ...@@ -33,7 +33,7 @@ class PrefStore;
// be called on the UI thread. // be called on the UI thread.
class COMPONENTS_PREFS_EXPORT PrefValueStore { class COMPONENTS_PREFS_EXPORT PrefValueStore {
public: public:
typedef base::Callback<void(const std::string&)> PrefChangedCallback; using PrefChangedCallback = base::Callback<void(const std::string&)>;
// Delegate used to observe certain events in the |PrefValueStore|'s lifetime. // Delegate used to observe certain events in the |PrefValueStore|'s lifetime.
class Delegate { class Delegate {
......
...@@ -122,8 +122,8 @@ class PrefValueStoreTest : public testing::Test { ...@@ -122,8 +122,8 @@ class PrefValueStoreTest : public testing::Test {
&pref_notifier_)); &pref_notifier_));
pref_value_store_->set_callback( pref_value_store_->set_callback(
base::Bind(&MockPrefModelAssociator::ProcessPrefChange, base::BindRepeating(&MockPrefModelAssociator::ProcessPrefChange,
base::Unretained(sync_associator_.get()))); base::Unretained(sync_associator_.get())));
} }
void CreateManagedPrefs() { void CreateManagedPrefs() {
......
...@@ -34,8 +34,9 @@ TestingPrefServiceBase<PrefService, PrefRegistry>::TestingPrefServiceBase( ...@@ -34,8 +34,9 @@ TestingPrefServiceBase<PrefService, PrefRegistry>::TestingPrefServiceBase(
pref_notifier), pref_notifier),
user_prefs, user_prefs,
pref_registry, pref_registry,
base::Bind(&TestingPrefServiceBase<PrefService, base::BindRepeating(
PrefRegistry>::HandleReadError), &TestingPrefServiceBase<PrefService,
PrefRegistry>::HandleReadError),
false), false),
managed_prefs_(managed_prefs), managed_prefs_(managed_prefs),
extension_prefs_(extension_prefs), extension_prefs_(extension_prefs),
......
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