diff options
author | danno@chromium.org <danno@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-22 13:47:59 +0000 |
---|---|---|
committer | danno@chromium.org <danno@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-09-22 13:47:59 +0000 |
commit | 2510323ec78d771c9258fa95d8f98b5d18f3efaa (patch) | |
tree | 2bbb6a5c3ebba6adf5f01982c75ba52275aadcc4 /chrome/browser/cocoa/preferences_window_controller.mm | |
parent | 37d5293518a8657af4d79035f7ef2e8c3a8d6b9a (diff) | |
download | chromium_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.mm | 16 |
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. |