| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/file_manager/volume_manager.h" | 5 #include "chrome/browser/chromeos/file_manager/volume_manager.h" |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/bind.h" | 8 #include "base/bind.h" |
| 9 #include "base/callback.h" | 9 #include "base/callback.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 711 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 722 if (!storage_monitor::StorageInfo::IsMTPDevice(info.device_id())) | 722 if (!storage_monitor::StorageInfo::IsMTPDevice(info.device_id())) |
| 723 return; | 723 return; |
| 724 if (profile_->GetPrefs()->GetBoolean(prefs::kExternalStorageDisabled)) | 724 if (profile_->GetPrefs()->GetBoolean(prefs::kExternalStorageDisabled)) |
| 725 return; | 725 return; |
| 726 | 726 |
| 727 const base::FilePath path = base::FilePath::FromUTF8Unsafe(info.location()); | 727 const base::FilePath path = base::FilePath::FromUTF8Unsafe(info.location()); |
| 728 const std::string fsid = GetMountPointNameForMediaStorage(info); | 728 const std::string fsid = GetMountPointNameForMediaStorage(info); |
| 729 const std::string base_name = base::UTF16ToUTF8(info.model_name()); | 729 const std::string base_name = base::UTF16ToUTF8(info.model_name()); |
| 730 | 730 |
| 731 // Assign a fresh volume ID based on the volume name. | 731 // Assign a fresh volume ID based on the volume name. |
| 732 std::string id = kMtpVolumeIdPrefix + base_name; | 732 std::string label = base_name; |
| 733 for (int i = 2; mounted_volumes_.count(id); ++i) | 733 for (int i = 2; mounted_volumes_.count(kMtpVolumeIdPrefix + label); ++i) |
| 734 id = kMtpVolumeIdPrefix + base_name + base::StringPrintf(" (%d)", i); | 734 label = base_name + base::StringPrintf(" (%d)", i); |
| 735 | 735 |
| 736 bool result = | 736 bool result = |
| 737 fileapi::ExternalMountPoints::GetSystemInstance()->RegisterFileSystem( | 737 fileapi::ExternalMountPoints::GetSystemInstance()->RegisterFileSystem( |
| 738 fsid, fileapi::kFileSystemTypeDeviceMediaAsFileStorage, | 738 fsid, fileapi::kFileSystemTypeDeviceMediaAsFileStorage, |
| 739 fileapi::FileSystemMountOption(), path); | 739 fileapi::FileSystemMountOption(), path); |
| 740 DCHECK(result); | 740 DCHECK(result); |
| 741 content::BrowserThread::PostTask( | 741 content::BrowserThread::PostTask( |
| 742 content::BrowserThread::IO, FROM_HERE, base::Bind( | 742 content::BrowserThread::IO, FROM_HERE, base::Bind( |
| 743 &MTPDeviceMapService::RegisterMTPFileSystem, | 743 &MTPDeviceMapService::RegisterMTPFileSystem, |
| 744 base::Unretained(MTPDeviceMapService::GetInstance()), | 744 base::Unretained(MTPDeviceMapService::GetInstance()), |
| 745 info.location(), fsid)); | 745 info.location(), fsid)); |
| 746 | 746 |
| 747 VolumeInfo volume_info; | 747 VolumeInfo volume_info; |
| 748 volume_info.type = VOLUME_TYPE_MTP; | 748 volume_info.type = VOLUME_TYPE_MTP; |
| 749 volume_info.mount_path = path; | 749 volume_info.mount_path = path; |
| 750 volume_info.mount_condition = chromeos::disks::MOUNT_CONDITION_NONE; | 750 volume_info.mount_condition = chromeos::disks::MOUNT_CONDITION_NONE; |
| 751 volume_info.is_parent = true; | 751 volume_info.is_parent = true; |
| 752 volume_info.is_read_only = true; | 752 volume_info.is_read_only = true; |
| 753 volume_info.volume_id = id; | 753 volume_info.volume_id = kMtpVolumeIdPrefix + label; |
| 754 volume_info.volume_label = label; |
| 754 volume_info.source_path = path; | 755 volume_info.source_path = path; |
| 755 volume_info.device_type = chromeos::DEVICE_TYPE_MOBILE; | 756 volume_info.device_type = chromeos::DEVICE_TYPE_MOBILE; |
| 756 DoMountEvent(chromeos::MOUNT_ERROR_NONE, volume_info, false); | 757 DoMountEvent(chromeos::MOUNT_ERROR_NONE, volume_info, false); |
| 757 } | 758 } |
| 758 | 759 |
| 759 void VolumeManager::OnRemovableStorageDetached( | 760 void VolumeManager::OnRemovableStorageDetached( |
| 760 const storage_monitor::StorageInfo& info) { | 761 const storage_monitor::StorageInfo& info) { |
| 761 if (!storage_monitor::StorageInfo::IsMTPDevice(info.device_id())) | 762 if (!storage_monitor::StorageInfo::IsMTPDevice(info.device_id())) |
| 762 return; | 763 return; |
| 763 | 764 |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 836 return; | 837 return; |
| 837 if (error_code == chromeos::MOUNT_ERROR_NONE) | 838 if (error_code == chromeos::MOUNT_ERROR_NONE) |
| 838 mounted_volumes_.erase(volume_info.volume_id); | 839 mounted_volumes_.erase(volume_info.volume_id); |
| 839 | 840 |
| 840 FOR_EACH_OBSERVER(VolumeManagerObserver, | 841 FOR_EACH_OBSERVER(VolumeManagerObserver, |
| 841 observers_, | 842 observers_, |
| 842 OnVolumeUnmounted(error_code, volume_info)); | 843 OnVolumeUnmounted(error_code, volume_info)); |
| 843 } | 844 } |
| 844 | 845 |
| 845 } // namespace file_manager | 846 } // namespace file_manager |
| OLD | NEW |