1*6777b538SAndroid Build Coastguard Worker // Copyright 2019 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "components/prefs/pref_test_utils.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include "base/run_loop.h" 8*6777b538SAndroid Build Coastguard Worker #include "base/test/bind.h" 9*6777b538SAndroid Build Coastguard Worker #include "base/values.h" 10*6777b538SAndroid Build Coastguard Worker #include "components/prefs/pref_change_registrar.h" 11*6777b538SAndroid Build Coastguard Worker #include "components/prefs/pref_service.h" 12*6777b538SAndroid Build Coastguard Worker WaitForPrefValue(PrefService * pref_service,const std::string & path,const base::Value & value)13*6777b538SAndroid Build Coastguard Workervoid WaitForPrefValue(PrefService* pref_service, 14*6777b538SAndroid Build Coastguard Worker const std::string& path, 15*6777b538SAndroid Build Coastguard Worker const base::Value& value) { 16*6777b538SAndroid Build Coastguard Worker if (value == pref_service->GetValue(path)) 17*6777b538SAndroid Build Coastguard Worker return; 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Worker base::RunLoop run_loop; 20*6777b538SAndroid Build Coastguard Worker PrefChangeRegistrar pref_changes; 21*6777b538SAndroid Build Coastguard Worker pref_changes.Init(pref_service); 22*6777b538SAndroid Build Coastguard Worker pref_changes.Add(path, base::BindLambdaForTesting([&]() { 23*6777b538SAndroid Build Coastguard Worker if (value == pref_service->GetValue(path)) 24*6777b538SAndroid Build Coastguard Worker run_loop.Quit(); 25*6777b538SAndroid Build Coastguard Worker })); 26*6777b538SAndroid Build Coastguard Worker run_loop.Run(); 27*6777b538SAndroid Build Coastguard Worker } 28