Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: chrome/browser/chromeos/file_manager/volume_manager.cc

Issue 1077823005: Declare providing extension capabilities in the manifest. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed tests. Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 } 143 }
144 144
145 // static 145 // static
146 Volume* Volume::CreateForDrive(Profile* profile) { 146 Volume* Volume::CreateForDrive(Profile* profile) {
147 const base::FilePath& drive_path = 147 const base::FilePath& drive_path =
148 drive::util::GetDriveMountPointPath(profile); 148 drive::util::GetDriveMountPointPath(profile);
149 Volume* const volume = new Volume; 149 Volume* const volume = new Volume;
150 volume->type_ = VOLUME_TYPE_GOOGLE_DRIVE; 150 volume->type_ = VOLUME_TYPE_GOOGLE_DRIVE;
151 volume->device_type_ = chromeos::DEVICE_TYPE_UNKNOWN; 151 volume->device_type_ = chromeos::DEVICE_TYPE_UNKNOWN;
152 volume->source_path_ = drive_path; 152 volume->source_path_ = drive_path;
153 volume->volume_source_ = VOLUME_SOURCE_NETWORK;
154 volume->mount_path_ = drive_path; 153 volume->mount_path_ = drive_path;
155 volume->mount_condition_ = chromeos::disks::MOUNT_CONDITION_NONE; 154 volume->mount_condition_ = chromeos::disks::MOUNT_CONDITION_NONE;
156 volume->is_parent_ = false; 155 volume->is_parent_ = false;
157 volume->is_read_only_ = false; 156 volume->is_read_only_ = false;
158 volume->has_media_ = false; 157 volume->has_media_ = false;
159 volume->volume_id_ = GenerateVolumeId(*volume); 158 volume->volume_id_ = GenerateVolumeId(*volume);
160 return volume; 159 return volume;
161 } 160 }
162 161
163 // static 162 // static
164 Volume* Volume::CreateForDownloads(const base::FilePath& downloads_path) { 163 Volume* Volume::CreateForDownloads(const base::FilePath& downloads_path) {
165 Volume* const volume = new Volume; 164 Volume* const volume = new Volume;
166 volume->type_ = VOLUME_TYPE_DOWNLOADS_DIRECTORY; 165 volume->type_ = VOLUME_TYPE_DOWNLOADS_DIRECTORY;
167 volume->device_type_ = chromeos::DEVICE_TYPE_UNKNOWN; 166 volume->device_type_ = chromeos::DEVICE_TYPE_UNKNOWN;
168 // Keep source_path empty. 167 // Keep source_path empty.
169 volume->volume_source_ = VOLUME_SOURCE_DEVICE;
170 volume->mount_path_ = downloads_path; 168 volume->mount_path_ = downloads_path;
171 volume->mount_condition_ = chromeos::disks::MOUNT_CONDITION_NONE; 169 volume->mount_condition_ = chromeos::disks::MOUNT_CONDITION_NONE;
172 volume->is_parent_ = false; 170 volume->is_parent_ = false;
173 volume->is_read_only_ = false; 171 volume->is_read_only_ = false;
174 volume->has_media_ = false; 172 volume->has_media_ = false;
175 volume->volume_id_ = GenerateVolumeId(*volume); 173 volume->volume_id_ = GenerateVolumeId(*volume);
176 return volume; 174 return volume;
177 } 175 }
178 176
179 // static 177 // static
180 Volume* Volume::CreateForRemovable( 178 Volume* Volume::CreateForRemovable(
181 const chromeos::disks::DiskMountManager::MountPointInfo& mount_point, 179 const chromeos::disks::DiskMountManager::MountPointInfo& mount_point,
182 const chromeos::disks::DiskMountManager::Disk* disk) { 180 const chromeos::disks::DiskMountManager::Disk* disk) {
183 Volume* const volume = new Volume; 181 Volume* const volume = new Volume;
184 volume->type_ = MountTypeToVolumeType(mount_point.mount_type); 182 volume->type_ = MountTypeToVolumeType(mount_point.mount_type);
185 volume->source_path_ = base::FilePath(mount_point.source_path); 183 volume->source_path_ = base::FilePath(mount_point.source_path);
186 volume->volume_source_ =
187 mount_point.mount_type == chromeos::MOUNT_TYPE_ARCHIVE
188 ? VOLUME_SOURCE_FILE
189 : VOLUME_SOURCE_DEVICE;
190 volume->mount_path_ = base::FilePath(mount_point.mount_path); 184 volume->mount_path_ = base::FilePath(mount_point.mount_path);
191 volume->mount_condition_ = mount_point.mount_condition; 185 volume->mount_condition_ = mount_point.mount_condition;
192 volume->volume_label_ = volume->mount_path().BaseName().AsUTF8Unsafe(); 186 volume->volume_label_ = volume->mount_path().BaseName().AsUTF8Unsafe();
193 if (disk) { 187 if (disk) {
194 volume->device_type_ = disk->device_type(); 188 volume->device_type_ = disk->device_type();
195 volume->system_path_prefix_ = base::FilePath(disk->system_path_prefix()); 189 volume->system_path_prefix_ = base::FilePath(disk->system_path_prefix());
196 volume->is_parent_ = disk->is_parent(); 190 volume->is_parent_ = disk->is_parent();
197 volume->is_read_only_ = disk->is_read_only(); 191 volume->is_read_only_ = disk->is_read_only();
198 volume->has_media_ = disk->has_media(); 192 volume->has_media_ = disk->has_media();
199 } else { 193 } else {
200 volume->device_type_ = chromeos::DEVICE_TYPE_UNKNOWN; 194 volume->device_type_ = chromeos::DEVICE_TYPE_UNKNOWN;
201 volume->is_parent_ = false; 195 volume->is_parent_ = false;
202 volume->is_read_only_ = 196 volume->is_read_only_ =
203 (mount_point.mount_type == chromeos::MOUNT_TYPE_ARCHIVE); 197 (mount_point.mount_type == chromeos::MOUNT_TYPE_ARCHIVE);
204 volume->has_media_ = false; 198 volume->has_media_ = false;
205 } 199 }
206 volume->volume_id_ = GenerateVolumeId(*volume); 200 volume->volume_id_ = GenerateVolumeId(*volume);
207 return volume; 201 return volume;
208 } 202 }
209 203
210 // static 204 // static
211 Volume* Volume::CreateForProvidedFileSystem( 205 Volume* Volume::CreateForProvidedFileSystem(
212 const chromeos::file_system_provider::ProvidedFileSystemInfo& 206 const chromeos::file_system_provider::ProvidedFileSystemInfo&
213 file_system_info, 207 file_system_info,
214 MountContext mount_context) { 208 MountContext mount_context) {
215 Volume* const volume = new Volume; 209 Volume* const volume = new Volume;
216 volume->file_system_id_ = file_system_info.file_system_id(); 210 volume->file_system_id_ = file_system_info.file_system_id();
217 volume->extension_id_ = file_system_info.extension_id(); 211 volume->extension_id_ = file_system_info.extension_id();
218 switch (file_system_info.source()) {
219 case chromeos::file_system_provider::SOURCE_UNKNOWN:
220 volume->volume_source_ = VOLUME_SOURCE_UNKNOWN;
221 break;
222 case chromeos::file_system_provider::SOURCE_FILE:
223 volume->volume_source_ = VOLUME_SOURCE_FILE;
224 break;
225 case chromeos::file_system_provider::SOURCE_DEVICE:
226 volume->volume_source_ = VOLUME_SOURCE_DEVICE;
227 break;
228 case chromeos::file_system_provider::SOURCE_NETWORK:
229 volume->volume_source_ = VOLUME_SOURCE_NETWORK;
230 break;
231 }
232 volume->volume_label_ = file_system_info.display_name(); 212 volume->volume_label_ = file_system_info.display_name();
233 volume->type_ = VOLUME_TYPE_PROVIDED; 213 volume->type_ = VOLUME_TYPE_PROVIDED;
234 volume->mount_path_ = file_system_info.mount_path(); 214 volume->mount_path_ = file_system_info.mount_path();
235 volume->mount_condition_ = chromeos::disks::MOUNT_CONDITION_NONE; 215 volume->mount_condition_ = chromeos::disks::MOUNT_CONDITION_NONE;
236 volume->mount_context_ = mount_context; 216 volume->mount_context_ = mount_context;
237 volume->is_parent_ = true; 217 volume->is_parent_ = true;
238 volume->is_read_only_ = !file_system_info.writable(); 218 volume->is_read_only_ = !file_system_info.writable();
239 volume->has_media_ = false; 219 volume->has_media_ = false;
240 volume->volume_id_ = GenerateVolumeId(*volume); 220 volume->volume_id_ = GenerateVolumeId(*volume);
241 return volume; 221 return volume;
242 } 222 }
243 223
244 // static 224 // static
245 Volume* Volume::CreateForMTP(const base::FilePath& mount_path, 225 Volume* Volume::CreateForMTP(const base::FilePath& mount_path,
246 const std::string& label, 226 const std::string& label,
247 bool read_only) { 227 bool read_only) {
248 Volume* const volume = new Volume; 228 Volume* const volume = new Volume;
249 volume->type_ = VOLUME_TYPE_MTP; 229 volume->type_ = VOLUME_TYPE_MTP;
250 volume->mount_path_ = mount_path; 230 volume->mount_path_ = mount_path;
251 volume->mount_condition_ = chromeos::disks::MOUNT_CONDITION_NONE; 231 volume->mount_condition_ = chromeos::disks::MOUNT_CONDITION_NONE;
252 volume->is_parent_ = true; 232 volume->is_parent_ = true;
253 volume->is_read_only_ = read_only; 233 volume->is_read_only_ = read_only;
254 volume->volume_id_ = kMtpVolumeIdPrefix + label; 234 volume->volume_id_ = kMtpVolumeIdPrefix + label;
255 volume->volume_label_ = label; 235 volume->volume_label_ = label;
256 volume->source_path_ = mount_path; 236 volume->source_path_ = mount_path;
257 volume->volume_source_ = VOLUME_SOURCE_DEVICE;
258 volume->device_type_ = chromeos::DEVICE_TYPE_MOBILE; 237 volume->device_type_ = chromeos::DEVICE_TYPE_MOBILE;
259 return volume; 238 return volume;
260 } 239 }
261 240
262 // static 241 // static
263 Volume* Volume::CreateForTesting(const base::FilePath& path, 242 Volume* Volume::CreateForTesting(const base::FilePath& path,
264 VolumeType volume_type, 243 VolumeType volume_type,
265 chromeos::DeviceType device_type, 244 chromeos::DeviceType device_type,
266 bool read_only) { 245 bool read_only) {
267 Volume* const volume = new Volume; 246 Volume* const volume = new Volume;
268 volume->type_ = volume_type; 247 volume->type_ = volume_type;
269 volume->device_type_ = device_type; 248 volume->device_type_ = device_type;
270 // Keep source_path empty. 249 // Keep source_path empty.
271 volume->volume_source_ = VOLUME_SOURCE_DEVICE;
272 volume->mount_path_ = path; 250 volume->mount_path_ = path;
273 volume->mount_condition_ = chromeos::disks::MOUNT_CONDITION_NONE; 251 volume->mount_condition_ = chromeos::disks::MOUNT_CONDITION_NONE;
274 volume->is_parent_ = false; 252 volume->is_parent_ = false;
275 volume->is_read_only_ = read_only; 253 volume->is_read_only_ = read_only;
276 volume->has_media_ = false; 254 volume->has_media_ = false;
277 volume->volume_id_ = GenerateVolumeId(*volume); 255 volume->volume_id_ = GenerateVolumeId(*volume);
278 return volume; 256 return volume;
279 } 257 }
280 258
281 // static 259 // static
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after
847 if (mounted_volumes_.find(volume->volume_id()) == mounted_volumes_.end()) 825 if (mounted_volumes_.find(volume->volume_id()) == mounted_volumes_.end())
848 return; 826 return;
849 if (error_code == chromeos::MOUNT_ERROR_NONE) 827 if (error_code == chromeos::MOUNT_ERROR_NONE)
850 mounted_volumes_.erase(volume->volume_id()); 828 mounted_volumes_.erase(volume->volume_id());
851 829
852 FOR_EACH_OBSERVER(VolumeManagerObserver, observers_, 830 FOR_EACH_OBSERVER(VolumeManagerObserver, observers_,
853 OnVolumeUnmounted(error_code, *volume.get())); 831 OnVolumeUnmounted(error_code, *volume.get()));
854 } 832 }
855 833
856 } // namespace file_manager 834 } // namespace file_manager
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698