| Index: chrome/browser/chromeos/extensions/file_browser_event_router.cc | 
| diff --git a/chrome/browser/chromeos/extensions/file_browser_event_router.cc b/chrome/browser/chromeos/extensions/file_browser_event_router.cc | 
| index 430e6f41589444efc8f5640c12f30dfeb00ff860..c4304333d8ccba8ab1f0d6c8806901d3a0a64916 100644 | 
| --- a/chrome/browser/chromeos/extensions/file_browser_event_router.cc | 
| +++ b/chrome/browser/chromeos/extensions/file_browser_event_router.cc | 
| @@ -385,41 +385,37 @@ void FileBrowserEventRouter::OnNetworkManagerChanged( | 
| scoped_ptr<ListValue>(new ListValue()), NULL, GURL()); | 
| } | 
|  | 
| -void FileBrowserEventRouter::Observe( | 
| -    int type, | 
| -    const content::NotificationSource& source, | 
| -    const content::NotificationDetails& details) { | 
| +void FileBrowserEventRouter::OnPreferenceChanged(PrefServiceBase* service, | 
| +                                                 const std::string& pref_name) { | 
| if (!profile_ || | 
| !extensions::ExtensionSystem::Get(profile_)->event_router()) { | 
| NOTREACHED(); | 
| return; | 
| } | 
| -  if (type == chrome::NOTIFICATION_PREF_CHANGED) { | 
| -    std::string* pref_name = content::Details<std::string>(details).ptr(); | 
| -    // If the policy just got disabled we have to unmount every device currently | 
| -    // mounted. The opposite is fine - we can let the user re-plug her device to | 
| -    // make it available. | 
| -    if (*pref_name == prefs::kExternalStorageDisabled && | 
| -        profile_->GetPrefs()->GetBoolean(prefs::kExternalStorageDisabled)) { | 
| -      DiskMountManager* manager = DiskMountManager::GetInstance(); | 
| -      DiskMountManager::MountPointMap mounts(manager->mount_points()); | 
| -      for (DiskMountManager::MountPointMap::const_iterator it = mounts.begin(); | 
| -           it != mounts.end(); ++it) { | 
| -        LOG(INFO) << "Unmounting " << it->second.mount_path | 
| -                  << " because of policy."; | 
| -        manager->UnmountPath(it->second.mount_path, | 
| -                             chromeos::UNMOUNT_OPTIONS_NONE); | 
| -      } | 
| -      return; | 
| -    } else if (*pref_name == prefs::kDisableDriveOverCellular || | 
| -        *pref_name == prefs::kDisableDriveHostedFiles || | 
| -        *pref_name == prefs::kDisableDrive || | 
| -        *pref_name == prefs::kUse24HourClock) { | 
| -      extensions::ExtensionSystem::Get(profile_)->event_router()-> | 
| -          DispatchEventToRenderers( | 
| -              extensions::event_names::kOnFileBrowserPreferencesChanged, | 
| -              scoped_ptr<ListValue>(new ListValue()), NULL, GURL()); | 
| + | 
| +  // If the policy just got disabled we have to unmount every device currently | 
| +  // mounted. The opposite is fine - we can let the user re-plug her device to | 
| +  // make it available. | 
| +  if (pref_name == prefs::kExternalStorageDisabled && | 
| +      profile_->GetPrefs()->GetBoolean(prefs::kExternalStorageDisabled)) { | 
| +    DiskMountManager* manager = DiskMountManager::GetInstance(); | 
| +    DiskMountManager::MountPointMap mounts(manager->mount_points()); | 
| +    for (DiskMountManager::MountPointMap::const_iterator it = mounts.begin(); | 
| +         it != mounts.end(); ++it) { | 
| +      LOG(INFO) << "Unmounting " << it->second.mount_path | 
| +                << " because of policy."; | 
| +      manager->UnmountPath(it->second.mount_path, | 
| +                           chromeos::UNMOUNT_OPTIONS_NONE); | 
| } | 
| +    return; | 
| +  } else if (pref_name == prefs::kDisableDriveOverCellular || | 
| +             pref_name == prefs::kDisableDriveHostedFiles || | 
| +             pref_name == prefs::kDisableDrive || | 
| +             pref_name == prefs::kUse24HourClock) { | 
| +    extensions::ExtensionSystem::Get(profile_)->event_router()-> | 
| +        DispatchEventToRenderers( | 
| +            extensions::event_names::kOnFileBrowserPreferencesChanged, | 
| +            scoped_ptr<ListValue>(new ListValue()), NULL, GURL()); | 
| } | 
| } | 
|  | 
|  |