summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/preferences_window_controller.mm
diff options
context:
space:
mode:
authordanno@chromium.org <danno@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-22 13:47:59 +0000
committerdanno@chromium.org <danno@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-09-22 13:47:59 +0000
commit2510323ec78d771c9258fa95d8f98b5d18f3efaa (patch)
tree2bbb6a5c3ebba6adf5f01982c75ba52275aadcc4 /chrome/browser/cocoa/preferences_window_controller.mm
parent37d5293518a8657af4d79035f7ef2e8c3a8d6b9a (diff)
downloadchromium_src-2510323ec78d771c9258fa95d8f98b5d18f3efaa.zip
chromium_src-2510323ec78d771c9258fa95d8f98b5d18f3efaa.tar.gz
chromium_src-2510323ec78d771c9258fa95d8f98b5d18f3efaa.tar.bz2
Revert 60169 - Use PrefChangeRegistrar everywhere
BUG=54955 TEST=PrefChangeRegistrarTest.* Review URL: http://codereview.chromium.org/3304015 TBR=danno@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60170 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/preferences_window_controller.mm')
-rw-r--r--chrome/browser/cocoa/preferences_window_controller.mm16
1 files changed, 14 insertions, 2 deletions
diff --git a/chrome/browser/cocoa/preferences_window_controller.mm b/chrome/browser/cocoa/preferences_window_controller.mm
index 0f11f63..c7c2b7b 100644
--- a/chrome/browser/cocoa/preferences_window_controller.mm
+++ b/chrome/browser/cocoa/preferences_window_controller.mm
@@ -330,6 +330,7 @@ CGFloat AutoSizeUnderTheHoodContent(NSView* view,
// Record the user performed a certain action and save the preferences.
- (void)recordUserAction:(const UserMetricsAction&) action;
- (void)registerPrefObservers;
+- (void)unregisterPrefObservers;
// KVC setter methods.
- (void)setNewTabPageIsHomePageIndex:(NSInteger)val;
@@ -760,6 +761,7 @@ class ManagedPrefsBannerState : public policy::ManagedPrefsBannerBase {
syncService_->RemoveObserver(observer_.get());
}
[[NSNotificationCenter defaultCenter] removeObserver:self];
+ [self unregisterPrefObservers];
[animation_ setDelegate:nil];
[animation_ stopAnimation];
[super dealloc];
@@ -779,8 +781,7 @@ class ManagedPrefsBannerState : public policy::ManagedPrefsBannerBase {
if (!prefs_) return;
// Basics panel
- registrar_.Init(prefs_);
- registrar_.Add(prefs::kURLsToRestoreOnStartup, observer_.get());
+ prefs_->AddPrefObserver(prefs::kURLsToRestoreOnStartup, observer_.get());
restoreOnStartup_.Init(prefs::kRestoreOnStartup, prefs_, observer_.get());
newTabPageIsHomePage_.Init(prefs::kHomePageIsNewTabPage,
prefs_, observer_.get());
@@ -822,6 +823,17 @@ class ManagedPrefsBannerState : public policy::ManagedPrefsBannerBase {
lastSelectedPage_.Init(prefs::kOptionsWindowLastTabIndex, local, NULL);
}
+// Clean up what was registered in -registerPrefObservers. We only have to
+// clean up the non-PrefMember registrations.
+- (void)unregisterPrefObservers {
+ if (!prefs_) return;
+
+ // Basics
+ prefs_->RemovePrefObserver(prefs::kURLsToRestoreOnStartup, observer_.get());
+
+ // Nothing to do for other panels...
+}
+
// Called when the window wants to be closed.
- (BOOL)windowShouldClose:(id)sender {
// Stop any animation and clear the delegate to avoid stale pointers.