1// Copyright 2012 The Chromium Authors 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#import "components/prefs/ios/pref_observer_bridge.h" 6 7#include "base/functional/bind.h" 8#include "components/prefs/pref_change_registrar.h" 9 10#if !defined(__has_feature) || !__has_feature(objc_arc) 11#error "This file requires ARC support." 12#endif 13 14PrefObserverBridge::PrefObserverBridge(id<PrefObserverDelegate> delegate) 15 : delegate_(delegate) {} 16 17PrefObserverBridge::~PrefObserverBridge() {} 18 19void PrefObserverBridge::ObserveChangesForPreference( 20 const std::string& pref_name, 21 PrefChangeRegistrar* registrar) { 22 PrefChangeRegistrar::NamedChangeCallback callback = base::BindRepeating( 23 &PrefObserverBridge::OnPreferenceChanged, base::Unretained(this)); 24 registrar->Add(pref_name.c_str(), callback); 25} 26 27void PrefObserverBridge::OnPreferenceChanged(const std::string& pref_name) { 28 [delegate_ onPreferenceChanged:pref_name]; 29} 30