| 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
|
|
|