Chromium Code Reviews| Index: chrome/browser/media_galleries/media_file_system_registry.cc |
| diff --git a/chrome/browser/media_galleries/media_file_system_registry.cc b/chrome/browser/media_galleries/media_file_system_registry.cc |
| index 200b4f31a3647d81cc823b1e590cdf6b3c7c6414..475aee981373e303d5f7149a5777ce34cb9acb57 100644 |
| --- a/chrome/browser/media_galleries/media_file_system_registry.cc |
| +++ b/chrome/browser/media_galleries/media_file_system_registry.cc |
| @@ -16,6 +16,7 @@ |
| #include "base/stl_util.h" |
| #include "chrome/browser/extensions/extension_service.h" |
| #include "chrome/browser/extensions/extension_system.h" |
| +#include "chrome/browser/media_galleries/imported_media_gallery_registry.h" |
| #include "chrome/browser/media_galleries/media_file_system_context.h" |
| #include "chrome/browser/media_galleries/media_galleries_dialog_controller.h" |
| #include "chrome/browser/media_galleries/media_galleries_preferences_factory.h" |
| @@ -330,11 +331,33 @@ class ExtensionGalleriesHost |
| fsid = file_system_context_->RegisterFileSystemForMassStorage( |
| device_id, path); |
| } else { |
| - scoped_refptr<ScopedMTPDeviceMapEntry> mtp_device_host; |
| - fsid = file_system_context_->RegisterFileSystemForMTPDevice( |
| - device_id, path, &mtp_device_host); |
| - DCHECK(mtp_device_host.get()); |
| - media_device_map_references_[pref_id] = mtp_device_host; |
| + StorageInfo::Type type; |
| + if (!StorageInfo::CrackDeviceId(device_id, &type, NULL)) |
| + continue; |
| + |
| + switch (type) { |
|
vandebo (ex-Chrome)
2013/05/22 15:05:49
I'd prefer to do this switch in MediaFileSystemCon
tommycli
2013/05/22 18:03:09
Done.
|
| + case StorageInfo::MTP_OR_PTP: |
| + case StorageInfo::MAC_IMAGE_CAPTURE: { |
| + scoped_refptr<ScopedMTPDeviceMapEntry> mtp_device_host; |
| + fsid = file_system_context_->RegisterFileSystemForMTPDevice( |
| + device_id, path, &mtp_device_host); |
| + DCHECK(mtp_device_host.get()); |
| + media_device_map_references_[pref_id] = mtp_device_host; |
| + break; |
| + } |
| + case StorageInfo::ITUNES: { |
| + NOTIMPLEMENTED(); |
| + break; |
| + } |
| + case StorageInfo::PICASA: { |
| + fsid = file_system_context_->RegisterFileSystemForPicasa( |
| + device_id, path); |
| + break; |
| + } |
| + default: { |
| + NOTREACHED(); |
| + } |
| + } |
| } |
| DCHECK(!fsid.empty()); |
| @@ -601,6 +624,12 @@ class MediaFileSystemRegistry::MediaFileSystemContextImpl |
| return fsid; |
| } |
| + virtual std::string RegisterFileSystemForPicasa( |
| + const std::string& device_id, const base::FilePath& path) OVERRIDE { |
| + return |
| + ImportedMediaGalleryRegistry::RegisterPicasaFilesystemOnUIThread(path); |
| + } |
| + |
| virtual void RevokeFileSystem(const std::string& fsid) OVERRIDE { |
| IsolatedContext::GetInstance()->RevokeFileSystem(fsid); |
| } |
| @@ -610,6 +639,7 @@ class MediaFileSystemRegistry::MediaFileSystemContextImpl |
| } |
| private: |
| + |
|
vandebo (ex-Chrome)
2013/05/22 15:05:49
nit: extra line.
tommycli
2013/05/22 18:03:09
Done.
|
| MediaFileSystemRegistry* registry_; |
| DISALLOW_COPY_AND_ASSIGN(MediaFileSystemContextImpl); |