Index: chrome/browser/media_galleries/media_galleries_preferences.cc |
diff --git a/chrome/browser/media_galleries/media_galleries_preferences.cc b/chrome/browser/media_galleries/media_galleries_preferences.cc |
index e5b05aeab1690b9fa9b18c9560c682007524da9a..9ab57f45e28812a42652fd250c837e858d8e51b8 100644 |
--- a/chrome/browser/media_galleries/media_galleries_preferences.cc |
+++ b/chrome/browser/media_galleries/media_galleries_preferences.cc |
@@ -20,6 +20,7 @@ |
#include "chrome/browser/extensions/extension_service.h" |
#include "chrome/browser/media_galleries/fileapi/iapps_finder.h" |
#include "chrome/browser/media_galleries/fileapi/picasa_finder.h" |
+#include "chrome/browser/media_galleries/imported_media_gallery_registry.h" |
#include "chrome/browser/media_galleries/media_file_system_registry.h" |
#include "chrome/browser/media_galleries/media_galleries_histograms.h" |
#include "chrome/browser/profiles/profile.h" |
@@ -306,6 +307,11 @@ base::string16 GetDisplayNameForSubFolder(const base::string16& device_name, |
device_name); |
} |
+void InitializeImportedMediaGalleryRegistryOnFileThread() { |
+ DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::FILE)); |
+ ImportedMediaGalleryRegistry::GetInstance()->Initialize(); |
+} |
+ |
} // namespace |
MediaGalleryPrefInfo::MediaGalleryPrefInfo() |
@@ -575,7 +581,7 @@ void MediaGalleriesPreferences::OnStorageMonitorInit( |
} |
void MediaGalleriesPreferences::OnFinderDeviceID(const std::string& device_id) { |
- if (!device_id.empty() && !UpdateDeviceIDForSingletonType(device_id)) { |
+ if (!device_id.empty()) { |
std::string gallery_name; |
if (StorageInfo::IsIPhotoDevice(device_id)) |
gallery_name = kIPhotoGalleryName; |
@@ -583,13 +589,25 @@ void MediaGalleriesPreferences::OnFinderDeviceID(const std::string& device_id) { |
gallery_name = kITunesGalleryName; |
else if (StorageInfo::IsPicasaDevice(device_id)) |
gallery_name = kPicasaGalleryName; |
- else |
- NOTREACHED(); |
- AddGalleryInternal(device_id, base::ASCIIToUTF16(gallery_name), |
- base::FilePath(), MediaGalleryPrefInfo::kAutoDetected, |
- base::string16(), base::string16(), base::string16(), 0, |
- base::Time(), false, 0, 0, 0, kCurrentPrefsVersion); |
+ if (!gallery_name.empty()) { |
+ pre_initialization_callbacks_waiting_++; |
+ content::BrowserThread::PostTaskAndReply( |
+ content::BrowserThread::FILE, |
+ FROM_HERE, |
+ base::Bind(&InitializeImportedMediaGalleryRegistryOnFileThread), |
+ base::Bind( |
+ &MediaGalleriesPreferences::OnInitializationCallbackReturned, |
+ weak_factory_.GetWeakPtr())); |
+ } |
+ |
+ if (!UpdateDeviceIDForSingletonType(device_id)) { |
+ DCHECK(!gallery_name.empty()); |
+ AddGalleryInternal(device_id, base::ASCIIToUTF16(gallery_name), |
+ base::FilePath(), MediaGalleryPrefInfo::kAutoDetected, |
+ base::string16(), base::string16(), base::string16(), |
+ 0, base::Time(), false, 0, 0, 0, kCurrentPrefsVersion); |
+ } |
} |
OnInitializationCallbackReturned(); |