| Index: chrome/browser/background/background_mode_manager.cc | 
| diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/browser/background/background_mode_manager.cc | 
| index 4fd087cb5db445b6236c7c506dc3b4acd98e6825..b77ba7e15f69684d4089161262ac0c5959683362 100644 | 
| --- a/chrome/browser/background/background_mode_manager.cc | 
| +++ b/chrome/browser/background/background_mode_manager.cc | 
| @@ -284,11 +284,6 @@ void BackgroundModeManager::Observe( | 
| const content::NotificationSource& source, | 
| const content::NotificationDetails& details) { | 
| switch (type) { | 
| -    case chrome::NOTIFICATION_PREF_CHANGED: | 
| -      DCHECK(*content::Details<std::string>(details).ptr() == | 
| -             prefs::kBackgroundModeEnabled); | 
| -      OnBackgroundModeEnabledPrefChanged(); | 
| -      break; | 
| case chrome::NOTIFICATION_EXTENSIONS_READY: | 
| // Extensions are loaded, so we don't need to manually keep the browser | 
| // process alive any more when running in no-startup-window mode. | 
| @@ -341,6 +336,12 @@ void BackgroundModeManager::Observe( | 
| } | 
| } | 
|  | 
| +void BackgroundModeManager::OnPreferenceChanged(PrefServiceBase* service, | 
| +                                                const std::string& pref_name) { | 
| +  DCHECK(pref_name == prefs::kBackgroundModeEnabled); | 
| +  OnBackgroundModeEnabledPrefChanged(); | 
| +} | 
| + | 
| void BackgroundModeManager::OnBackgroundModeEnabledPrefChanged() { | 
| if (IsBackgroundModePrefEnabled()) | 
| EnableBackgroundMode(); | 
|  |