Chromium Code Reviews| Index: chrome/browser/chromeos/extensions/file_browser_event_router.cc |
| diff --git a/chrome/browser/chromeos/extensions/file_browser_event_router.cc b/chrome/browser/chromeos/extensions/file_browser_event_router.cc |
| index 6a5ae128fb34db755edf21d12de3fff7eacdc6a0..64c21b58acb9838ffe41734b11320a445eea1baf 100644 |
| --- a/chrome/browser/chromeos/extensions/file_browser_event_router.cc |
| +++ b/chrome/browser/chromeos/extensions/file_browser_event_router.cc |
| @@ -368,11 +368,24 @@ void FileBrowserEventRouter::DispatchMountCompletedEvent( |
| "mountType", |
| DiskMountManager::MountTypeToString(mount_info.mount_type)); |
| - if (mount_info.mount_type == chromeos::MOUNT_TYPE_ARCHIVE || |
| - mount_info.mount_type == chromeos::MOUNT_TYPE_GDATA) { |
| + // Determine if the source path is an archive on gdata. |
| + bool is_archive_on_gdata = false; |
| + FilePath source_path(mount_info.source_path); |
| + if (mount_info.mount_type == chromeos::MOUNT_TYPE_ARCHIVE) { |
| + gdata::GDataSystemService* system_service = |
| + gdata::GDataSystemServiceFactory::GetForProfile(profile_); |
| + gdata::GDataFileSystem* file_system = |
|
tbarzic
2012/04/27 05:44:21
This should probably be separate function.
On the
hshi
2012/04/27 18:48:56
Removed as suggested.
|
| + system_service ? system_service->file_system() : NULL; |
| + is_archive_on_gdata = |
| + file_system && file_system->IsUnderGDataCacheDirectory(source_path); |
| + } |
| + |
| + if (!is_archive_on_gdata && |
| + (mount_info.mount_type == chromeos::MOUNT_TYPE_ARCHIVE || |
| + mount_info.mount_type == chromeos::MOUNT_TYPE_GDATA)) { |
| GURL source_url; |
| if (file_manager_util::ConvertFileToFileSystemUrl(profile_, |
|
tbarzic
2012/04/27 05:44:21
We do this conversion for archives file_manager ca
hshi
2012/04/27 18:48:56
Done.
|
| - FilePath(mount_info.source_path), |
| + source_path, |
| file_manager_util::GetFileBrowserExtensionUrl().GetOrigin(), |
| &source_url)) { |
| mount_info_value->SetString("sourceUrl", source_url.spec()); |
| @@ -430,9 +443,11 @@ void FileBrowserEventRouter::OnDiskAdded( |
| // If disk is not mounted yet and it has media, give it a try. |
| if (disk->mount_path().empty() && disk->has_media()) { |
| // Initiate disk mount operation. MountPath auto-detects the filesystem |
| - // format if the second argument is empty. |
| + // format if the second argument is empty. The third argument (mount label) |
| + // is not used in a disk mount operation. |
| DiskMountManager::GetInstance()->MountPath( |
| - disk->device_path(), std::string(), chromeos::MOUNT_TYPE_DEVICE); |
| + disk->device_path(), std::string(), std::string(), |
| + chromeos::MOUNT_TYPE_DEVICE); |
| } else { |
| // Either the disk was mounted or it has no media. In both cases we don't |
| // want the Scanning notification to persist. |
| @@ -499,7 +514,9 @@ void FileBrowserEventRouter::OnFormattingFinished( |
| notifications_->HideNotificationDelayed( |
| FileBrowserNotifications::FORMAT_SUCCESS, device_path, 4000); |
| // MountPath auto-detects filesystem format if second argument is empty. |
| + // The third argument (mount path) is not used in a disk mount operation. |
|
tbarzic
2012/04/27 05:44:21
Isn't the third arg label to be used for the mount
hshi
2012/04/27 18:48:56
Sorry for the typo, the 3rd arg should be mount la
|
| DiskMountManager::GetInstance()->MountPath(device_path, std::string(), |
| + std::string(), |
| chromeos::MOUNT_TYPE_DEVICE); |
| } else { |
| notifications_->HideNotification(FileBrowserNotifications::FORMAT_START, |