#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"
device_name);
}
+void InitializeImportedMediaGalleryRegistryOnFileThread() {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::FILE);
+ ImportedMediaGalleryRegistry::GetInstance()->Initialize();
+}
+
} // namespace
MediaGalleryPrefInfo::MediaGalleryPrefInfo()
}
void MediaGalleriesPreferences::EnsureInitialized(base::Closure callback) {
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
if (IsInitialized()) {
if (!callback.is_null())
}
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;
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();