| Index: chrome/browser/prefs/pref_service_unittest.cc
 | 
| diff --git a/chrome/browser/prefs/pref_service_unittest.cc b/chrome/browser/prefs/pref_service_unittest.cc
 | 
| index 461f1083b055cb58064f2b35c1a0fed6149bd31d..d62679d25d47884bfe1f1c70ca6ab94da2d0305b 100644
 | 
| --- a/chrome/browser/prefs/pref_service_unittest.cc
 | 
| +++ b/chrome/browser/prefs/pref_service_unittest.cc
 | 
| @@ -8,6 +8,7 @@
 | 
|  #include "base/scoped_ptr.h"
 | 
|  #include "base/values.h"
 | 
|  #include "chrome/browser/prefs/dummy_pref_store.h"
 | 
| +#include "chrome/browser/prefs/pref_change_registrar.h"
 | 
|  #include "chrome/browser/prefs/pref_value_store.h"
 | 
|  #include "chrome/common/chrome_paths.h"
 | 
|  #include "chrome/common/notification_observer_mock.h"
 | 
| @@ -94,7 +95,10 @@ TEST(PrefServiceTest, NoObserverFire) {
 | 
|  
 | 
|    const std::string new_pref_value("http://www.google.com/");
 | 
|    TestPrefObserver obs(&prefs, pref_name, new_pref_value);
 | 
| -  prefs.AddPrefObserver(pref_name, &obs);
 | 
| +
 | 
| +  PrefChangeRegistrar registrar;
 | 
| +  registrar.Init(&prefs);
 | 
| +  registrar.Add(pref_name, &obs);
 | 
|    // This should fire the checks in TestPrefObserver::Observe.
 | 
|    prefs.SetString(pref_name, new_pref_value);
 | 
|  
 | 
| @@ -116,9 +120,6 @@ TEST(PrefServiceTest, NoObserverFire) {
 | 
|    obs.Reset("");
 | 
|    prefs.ClearPref(pref_name);
 | 
|    EXPECT_FALSE(obs.observer_fired());
 | 
| -
 | 
| -  // Ok, clean up.
 | 
| -  prefs.RemovePrefObserver(pref_name, &obs);
 | 
|  }
 | 
|  
 | 
|  TEST(PrefServiceTest, HasPrefPath) {
 | 
| @@ -148,7 +149,9 @@ TEST(PrefServiceTest, Observers) {
 | 
|  
 | 
|    const std::string new_pref_value("http://www.google.com/");
 | 
|    TestPrefObserver obs(&prefs, pref_name, new_pref_value);
 | 
| -  prefs.AddPrefObserver(pref_name, &obs);
 | 
| +  PrefChangeRegistrar registrar;
 | 
| +  registrar.Init(&prefs);
 | 
| +  registrar.Add(pref_name, &obs);
 | 
|    // This should fire the checks in TestPrefObserver::Observe.
 | 
|    prefs.SetString(pref_name, new_pref_value);
 | 
|  
 | 
| @@ -159,23 +162,20 @@ TEST(PrefServiceTest, Observers) {
 | 
|    const std::string new_pref_value2("http://www.youtube.com/");
 | 
|    obs.Reset(new_pref_value2);
 | 
|    TestPrefObserver obs2(&prefs, pref_name, new_pref_value2);
 | 
| -  prefs.AddPrefObserver(pref_name, &obs2);
 | 
| +  registrar.Add(pref_name, &obs2);
 | 
|    // This should fire the checks in obs and obs2.
 | 
|    prefs.SetString(pref_name, new_pref_value2);
 | 
|    EXPECT_TRUE(obs.observer_fired());
 | 
|    EXPECT_TRUE(obs2.observer_fired());
 | 
|  
 | 
|    // Make sure obs2 still works after removing obs.
 | 
| -  prefs.RemovePrefObserver(pref_name, &obs);
 | 
| +  registrar.Remove(pref_name, &obs);
 | 
|    obs.Reset("");
 | 
|    obs2.Reset(new_pref_value);
 | 
|    // This should only fire the observer in obs2.
 | 
|    prefs.SetString(pref_name, new_pref_value);
 | 
|    EXPECT_FALSE(obs.observer_fired());
 | 
|    EXPECT_TRUE(obs2.observer_fired());
 | 
| -
 | 
| -  // Ok, clean up.
 | 
| -  prefs.RemovePrefObserver(pref_name, &obs2);
 | 
|  }
 | 
|  
 | 
|  class PrefServiceSetValueTest : public testing::Test {
 | 
| @@ -211,7 +211,11 @@ TEST_F(PrefServiceSetValueTest, SetStringValue) {
 | 
|    const char default_string[] = "default";
 | 
|    scoped_ptr<Value> default_value(Value::CreateStringValue(default_string));
 | 
|    prefs_.RegisterStringPref(name_, default_string);
 | 
| -  prefs_.AddPrefObserver(name_, &observer_);
 | 
| +
 | 
| +  PrefChangeRegistrar registrar;
 | 
| +  registrar.Init(&prefs_);
 | 
| +  registrar.Add(name_, &observer_);
 | 
| +
 | 
|    // Changing the controlling store from default to user triggers notification.
 | 
|    SetExpectPrefChanged();
 | 
|    prefs_.Set(name_, *default_value);
 | 
| @@ -225,13 +229,13 @@ TEST_F(PrefServiceSetValueTest, SetStringValue) {
 | 
|    SetExpectPrefChanged();
 | 
|    prefs_.Set(name_, *new_value);
 | 
|    EXPECT_EQ(value_, prefs_.GetString(name_));
 | 
| -
 | 
| -  prefs_.RemovePrefObserver(name_, &observer_);
 | 
|  }
 | 
|  
 | 
|  TEST_F(PrefServiceSetValueTest, SetDictionaryValue) {
 | 
|    prefs_.RegisterDictionaryPref(name_);
 | 
| -  prefs_.AddPrefObserver(name_, &observer_);
 | 
| +  PrefChangeRegistrar registrar;
 | 
| +  registrar.Init(&prefs_);
 | 
| +  registrar.Add(name_, &observer_);
 | 
|  
 | 
|    // Dictionary values are special: setting one to NULL is the same as clearing
 | 
|    // the user value, allowing the NULL default to take (or keep) control.
 | 
| @@ -259,13 +263,13 @@ TEST_F(PrefServiceSetValueTest, SetDictionaryValue) {
 | 
|    Mock::VerifyAndClearExpectations(&observer_);
 | 
|    dict = prefs_.GetMutableDictionary(name_);
 | 
|    EXPECT_EQ(0U, dict->size());
 | 
| -
 | 
| -  prefs_.RemovePrefObserver(name_, &observer_);
 | 
|  }
 | 
|  
 | 
|  TEST_F(PrefServiceSetValueTest, SetListValue) {
 | 
|    prefs_.RegisterListPref(name_);
 | 
| -  prefs_.AddPrefObserver(name_, &observer_);
 | 
| +  PrefChangeRegistrar registrar;
 | 
| +  registrar.Init(&prefs_);
 | 
| +  registrar.Add(name_, &observer_);
 | 
|  
 | 
|    // List values are special: setting one to NULL is the same as clearing the
 | 
|    // user value, allowing the NULL default to take (or keep) control.
 | 
| @@ -293,6 +297,4 @@ TEST_F(PrefServiceSetValueTest, SetListValue) {
 | 
|    Mock::VerifyAndClearExpectations(&observer_);
 | 
|    list = prefs_.GetMutableList(name_);
 | 
|    EXPECT_EQ(0U, list->GetSize());
 | 
| -
 | 
| -  prefs_.RemovePrefObserver(name_, &observer_);
 | 
|  }
 | 
| 
 |