Index: chrome/browser/ui/webui/options/media_galleries_handler.cc |
diff --git a/chrome/browser/ui/webui/options/media_galleries_handler.cc b/chrome/browser/ui/webui/options/media_galleries_handler.cc |
index de76e34b104df31ee4274c9028fc6e1f518231ce..ad100acc08e136993453855f21a9e854be53d45f 100644 |
--- a/chrome/browser/ui/webui/options/media_galleries_handler.cc |
+++ b/chrome/browser/ui/webui/options/media_galleries_handler.cc |
@@ -26,7 +26,8 @@ using chrome::MediaGalleriesPreferences; |
using chrome::MediaGalleriesPrefInfoMap; |
using chrome::MediaGalleryPrefInfo; |
-MediaGalleriesHandler::MediaGalleriesHandler() { |
+MediaGalleriesHandler::MediaGalleriesHandler() |
+ : weak_ptr_factory_(this) { |
} |
MediaGalleriesHandler::~MediaGalleriesHandler() { |
@@ -77,9 +78,14 @@ void MediaGalleriesHandler::RegisterMessages() { |
void MediaGalleriesHandler::OnGalleriesChanged() { |
Profile* profile = Profile::FromWebUI(web_ui()); |
- chrome::MediaGalleriesPreferences* preferences = |
- g_browser_process->media_file_system_registry()->GetPreferences(profile); |
+ g_browser_process->media_file_system_registry()->GetPreferencesAsync( |
+ profile, |
+ base::Bind(&MediaGalleriesHandler::OnGalleriesChangedWithPreferences, |
+ weak_ptr_factory_.GetWeakPtr())); |
+} |
+void MediaGalleriesHandler::OnGalleriesChangedWithPreferences( |
+ chrome::MediaGalleriesPreferences* preferences) { |
ListValue list; |
const MediaGalleriesPrefInfoMap& galleries = preferences->known_galleries(); |
for (MediaGalleriesPrefInfoMap::const_iterator iter = galleries.begin(); |
@@ -123,19 +129,31 @@ void MediaGalleriesHandler::HandleForgetGallery(const base::ListValue* args) { |
return; |
} |
- chrome::MediaGalleriesPreferences* prefs = |
- g_browser_process->media_file_system_registry()->GetPreferences( |
- Profile::FromWebUI(web_ui())); |
- prefs->ForgetGalleryById(id); |
+ g_browser_process->media_file_system_registry()->GetPreferencesAsync( |
+ Profile::FromWebUI(web_ui()), |
+ base::Bind(&MediaGalleriesHandler::HandleForgetGalleryWithPreferences, |
+ weak_ptr_factory_.GetWeakPtr(), id)); |
+} |
+ |
+void MediaGalleriesHandler::HandleForgetGalleryWithPreferences( |
+ uint64 id, |
+ chrome::MediaGalleriesPreferences* preferences) { |
+ preferences->ForgetGalleryById(id); |
} |
void MediaGalleriesHandler::FileSelected(const base::FilePath& path, |
int index, |
void* params) { |
- chrome::MediaGalleriesPreferences* prefs = |
- g_browser_process->media_file_system_registry()->GetPreferences( |
- Profile::FromWebUI(web_ui())); |
- prefs->AddGalleryByPath(path); |
+ g_browser_process->media_file_system_registry()->GetPreferencesAsync( |
+ Profile::FromWebUI(web_ui()), |
+ base::Bind(&MediaGalleriesHandler::FileSelectedWithPreferences, |
+ weak_ptr_factory_.GetWeakPtr(), path)); |
+} |
+ |
+void MediaGalleriesHandler::FileSelectedWithPreferences( |
+ base::FilePath path, |
+ chrome::MediaGalleriesPreferences* preferences) { |
+ preferences->AddGalleryByPath(path); |
} |
} // namespace options |