Index: ios/chrome/browser/prefs/pref_observer_bridge.mm |
diff --git a/ios/chrome/browser/prefs/pref_observer_bridge.mm b/ios/chrome/browser/prefs/pref_observer_bridge.mm |
new file mode 100644 |
index 0000000000000000000000000000000000000000..276b4ae7d948abb7a658144f0f497c4032974768 |
--- /dev/null |
+++ b/ios/chrome/browser/prefs/pref_observer_bridge.mm |
@@ -0,0 +1,28 @@ |
+// Copyright 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#import "ios/chrome/browser/prefs/pref_observer_bridge.h" |
+ |
+#include "base/bind.h" |
+#include "base/logging.h" |
+#include "base/prefs/pref_change_registrar.h" |
droger
2015/04/23 17:00:54
Logging is not needed.
sdefresne
2015/04/23 17:04:42
Done.
|
+ |
+PrefObserverBridge::PrefObserverBridge(id<PrefObserverDelegate> delegate) |
+ : delegate_(delegate) { |
+} |
+ |
+PrefObserverBridge::~PrefObserverBridge() { |
+} |
+ |
+void PrefObserverBridge::ObserveChangesForPreference( |
+ const std::string& pref_name, |
+ PrefChangeRegistrar* registrar) { |
+ PrefChangeRegistrar::NamedChangeCallback callback = base::Bind( |
+ &PrefObserverBridge::OnPreferenceChanged, base::Unretained(this)); |
+ registrar->Add(pref_name.c_str(), callback); |
+} |
+ |
+void PrefObserverBridge::OnPreferenceChanged(const std::string& pref_name) { |
+ [delegate_ onPreferenceChanged:pref_name]; |
+} |