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/extensions/file_manager/private_api_util.h" | 5 #include "chrome/browser/chromeos/extensions/file_manager/private_api_util.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
11 #include "chrome/browser/chromeos/drive/drive.pb.h" | 11 #include "chrome/browser/chromeos/drive/drive.pb.h" |
12 #include "chrome/browser/chromeos/drive/drive_integration_service.h" | 12 #include "chrome/browser/chromeos/drive/drive_integration_service.h" |
13 #include "chrome/browser/chromeos/drive/file_errors.h" | 13 #include "chrome/browser/chromeos/drive/file_errors.h" |
14 #include "chrome/browser/chromeos/drive/file_system_interface.h" | 14 #include "chrome/browser/chromeos/drive/file_system_interface.h" |
15 #include "chrome/browser/chromeos/drive/file_system_util.h" | 15 #include "chrome/browser/chromeos/drive/file_system_util.h" |
16 #include "chrome/browser/chromeos/file_manager/app_id.h" | 16 #include "chrome/browser/chromeos/file_manager/app_id.h" |
17 #include "chrome/browser/chromeos/file_manager/fileapi_util.h" | 17 #include "chrome/browser/chromeos/file_manager/fileapi_util.h" |
18 #include "chrome/browser/chromeos/file_manager/filesystem_api_util.h" | 18 #include "chrome/browser/chromeos/file_manager/filesystem_api_util.h" |
19 #include "chrome/browser/chromeos/file_manager/path_util.h" | 19 #include "chrome/browser/chromeos/file_manager/path_util.h" |
20 #include "chrome/browser/chromeos/file_manager/snapshot_manager.h" | 20 #include "chrome/browser/chromeos/file_manager/snapshot_manager.h" |
21 #include "chrome/browser/chromeos/file_manager/volume_manager.h" | 21 #include "chrome/browser/chromeos/file_manager/volume_manager.h" |
22 #include "chrome/browser/chromeos/fileapi/file_system_backend.h" | 22 #include "chrome/browser/chromeos/fileapi/file_system_backend.h" |
23 #include "chrome/browser/profiles/profile.h" | 23 #include "chrome/browser/profiles/profile.h" |
24 #include "chrome/common/extensions/api/file_browser_private.h" | 24 #include "chrome/common/extensions/api/file_manager_private.h" |
25 #include "content/public/browser/child_process_security_policy.h" | 25 #include "content/public/browser/child_process_security_policy.h" |
26 #include "ui/shell_dialogs/selected_file_info.h" | 26 #include "ui/shell_dialogs/selected_file_info.h" |
27 #include "webkit/browser/fileapi/file_system_context.h" | 27 #include "webkit/browser/fileapi/file_system_context.h" |
28 #include "webkit/browser/fileapi/file_system_url.h" | 28 #include "webkit/browser/fileapi/file_system_url.h" |
29 | 29 |
30 namespace file_browser_private = extensions::api::file_browser_private; | 30 namespace file_manager_private = extensions::api::file_manager_private; |
31 | 31 |
32 namespace file_manager { | 32 namespace file_manager { |
33 namespace util { | 33 namespace util { |
34 namespace { | 34 namespace { |
35 | 35 |
36 // The struct is used for GetSelectedFileInfo(). | 36 // The struct is used for GetSelectedFileInfo(). |
37 struct GetSelectedFileInfoParams { | 37 struct GetSelectedFileInfoParams { |
38 GetSelectedFileInfoLocalPathOption local_path_option; | 38 GetSelectedFileInfoLocalPathOption local_path_option; |
39 GetSelectedFileInfoCallback callback; | 39 GetSelectedFileInfoCallback callback; |
40 std::vector<base::FilePath> file_paths; | 40 std::vector<base::FilePath> file_paths; |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 const base::FilePath& file_path = params->file_paths[index]; | 152 const base::FilePath& file_path = params->file_paths[index]; |
153 params->selected_files.push_back(ui::SelectedFileInfo(file_path, local_path)); | 153 params->selected_files.push_back(ui::SelectedFileInfo(file_path, local_path)); |
154 GetSelectedFileInfoInternal(profile, params.Pass()); | 154 GetSelectedFileInfoInternal(profile, params.Pass()); |
155 } | 155 } |
156 | 156 |
157 } // namespace | 157 } // namespace |
158 | 158 |
159 void VolumeInfoToVolumeMetadata( | 159 void VolumeInfoToVolumeMetadata( |
160 Profile* profile, | 160 Profile* profile, |
161 const VolumeInfo& volume_info, | 161 const VolumeInfo& volume_info, |
162 file_browser_private::VolumeMetadata* volume_metadata) { | 162 file_manager_private::VolumeMetadata* volume_metadata) { |
163 DCHECK(volume_metadata); | 163 DCHECK(volume_metadata); |
164 | 164 |
165 volume_metadata->volume_id = volume_info.volume_id; | 165 volume_metadata->volume_id = volume_info.volume_id; |
166 | 166 |
167 // TODO(kinaba): fill appropriate information once multi-profile support is | 167 // TODO(kinaba): fill appropriate information once multi-profile support is |
168 // implemented. | 168 // implemented. |
169 volume_metadata->profile.display_name = profile->GetProfileName(); | 169 volume_metadata->profile.display_name = profile->GetProfileName(); |
170 volume_metadata->profile.is_current_profile = true; | 170 volume_metadata->profile.is_current_profile = true; |
171 | 171 |
172 if (!volume_info.source_path.empty()) { | 172 if (!volume_info.source_path.empty()) { |
173 volume_metadata->source_path.reset( | 173 volume_metadata->source_path.reset( |
174 new std::string(volume_info.source_path.AsUTF8Unsafe())); | 174 new std::string(volume_info.source_path.AsUTF8Unsafe())); |
175 } | 175 } |
176 | 176 |
177 if (volume_info.type == VOLUME_TYPE_PROVIDED) { | 177 if (volume_info.type == VOLUME_TYPE_PROVIDED) { |
178 volume_metadata->extension_id.reset( | 178 volume_metadata->extension_id.reset( |
179 new std::string(volume_info.extension_id)); | 179 new std::string(volume_info.extension_id)); |
180 | 180 |
181 volume_metadata->file_system_id.reset( | 181 volume_metadata->file_system_id.reset( |
182 new std::string(volume_info.file_system_id)); | 182 new std::string(volume_info.file_system_id)); |
183 } | 183 } |
184 | 184 |
185 volume_metadata->volume_label.reset( | 185 volume_metadata->volume_label.reset( |
186 new std::string(volume_info.volume_label)); | 186 new std::string(volume_info.volume_label)); |
187 | 187 |
188 switch (volume_info.type) { | 188 switch (volume_info.type) { |
189 case VOLUME_TYPE_GOOGLE_DRIVE: | 189 case VOLUME_TYPE_GOOGLE_DRIVE: |
190 volume_metadata->volume_type = | 190 volume_metadata->volume_type = |
191 file_browser_private::VOLUME_TYPE_DRIVE; | 191 file_manager_private::VOLUME_TYPE_DRIVE; |
192 break; | 192 break; |
193 case VOLUME_TYPE_DOWNLOADS_DIRECTORY: | 193 case VOLUME_TYPE_DOWNLOADS_DIRECTORY: |
194 volume_metadata->volume_type = | 194 volume_metadata->volume_type = |
195 file_browser_private::VOLUME_TYPE_DOWNLOADS; | 195 file_manager_private::VOLUME_TYPE_DOWNLOADS; |
196 break; | 196 break; |
197 case VOLUME_TYPE_REMOVABLE_DISK_PARTITION: | 197 case VOLUME_TYPE_REMOVABLE_DISK_PARTITION: |
198 volume_metadata->volume_type = | 198 volume_metadata->volume_type = |
199 file_browser_private::VOLUME_TYPE_REMOVABLE; | 199 file_manager_private::VOLUME_TYPE_REMOVABLE; |
200 break; | 200 break; |
201 case VOLUME_TYPE_MOUNTED_ARCHIVE_FILE: | 201 case VOLUME_TYPE_MOUNTED_ARCHIVE_FILE: |
202 volume_metadata->volume_type = file_browser_private::VOLUME_TYPE_ARCHIVE; | 202 volume_metadata->volume_type = file_manager_private::VOLUME_TYPE_ARCHIVE; |
203 break; | 203 break; |
204 case VOLUME_TYPE_CLOUD_DEVICE: | 204 case VOLUME_TYPE_CLOUD_DEVICE: |
205 volume_metadata->volume_type = | 205 volume_metadata->volume_type = |
206 file_browser_private::VOLUME_TYPE_CLOUD_DEVICE; | 206 file_manager_private::VOLUME_TYPE_CLOUD_DEVICE; |
207 break; | 207 break; |
208 case VOLUME_TYPE_PROVIDED: | 208 case VOLUME_TYPE_PROVIDED: |
209 volume_metadata->volume_type = file_browser_private::VOLUME_TYPE_PROVIDED; | 209 volume_metadata->volume_type = file_manager_private::VOLUME_TYPE_PROVIDED; |
210 break; | 210 break; |
211 case VOLUME_TYPE_MTP: | 211 case VOLUME_TYPE_MTP: |
212 volume_metadata->volume_type = file_browser_private::VOLUME_TYPE_MTP; | 212 volume_metadata->volume_type = file_manager_private::VOLUME_TYPE_MTP; |
213 break; | 213 break; |
214 case VOLUME_TYPE_TESTING: | 214 case VOLUME_TYPE_TESTING: |
215 volume_metadata->volume_type = | 215 volume_metadata->volume_type = |
216 file_browser_private::VOLUME_TYPE_TESTING; | 216 file_manager_private::VOLUME_TYPE_TESTING; |
217 break; | 217 break; |
218 case NUM_VOLUME_TYPE: | 218 case NUM_VOLUME_TYPE: |
219 NOTREACHED(); | 219 NOTREACHED(); |
220 break; | 220 break; |
221 } | 221 } |
222 | 222 |
223 // Fill device_type iff the volume is removable partition. | 223 // Fill device_type iff the volume is removable partition. |
224 if (volume_info.type == VOLUME_TYPE_REMOVABLE_DISK_PARTITION) { | 224 if (volume_info.type == VOLUME_TYPE_REMOVABLE_DISK_PARTITION) { |
225 switch (volume_info.device_type) { | 225 switch (volume_info.device_type) { |
226 case chromeos::DEVICE_TYPE_UNKNOWN: | 226 case chromeos::DEVICE_TYPE_UNKNOWN: |
227 volume_metadata->device_type = | 227 volume_metadata->device_type = |
228 file_browser_private::DEVICE_TYPE_UNKNOWN; | 228 file_manager_private::DEVICE_TYPE_UNKNOWN; |
229 break; | 229 break; |
230 case chromeos::DEVICE_TYPE_USB: | 230 case chromeos::DEVICE_TYPE_USB: |
231 volume_metadata->device_type = file_browser_private::DEVICE_TYPE_USB; | 231 volume_metadata->device_type = file_manager_private::DEVICE_TYPE_USB; |
232 break; | 232 break; |
233 case chromeos::DEVICE_TYPE_SD: | 233 case chromeos::DEVICE_TYPE_SD: |
234 volume_metadata->device_type = file_browser_private::DEVICE_TYPE_SD; | 234 volume_metadata->device_type = file_manager_private::DEVICE_TYPE_SD; |
235 break; | 235 break; |
236 case chromeos::DEVICE_TYPE_OPTICAL_DISC: | 236 case chromeos::DEVICE_TYPE_OPTICAL_DISC: |
237 case chromeos::DEVICE_TYPE_DVD: | 237 case chromeos::DEVICE_TYPE_DVD: |
238 volume_metadata->device_type = | 238 volume_metadata->device_type = |
239 file_browser_private::DEVICE_TYPE_OPTICAL; | 239 file_manager_private::DEVICE_TYPE_OPTICAL; |
240 break; | 240 break; |
241 case chromeos::DEVICE_TYPE_MOBILE: | 241 case chromeos::DEVICE_TYPE_MOBILE: |
242 volume_metadata->device_type = file_browser_private::DEVICE_TYPE_MOBILE; | 242 volume_metadata->device_type = file_manager_private::DEVICE_TYPE_MOBILE; |
243 break; | 243 break; |
244 } | 244 } |
245 volume_metadata->device_path.reset( | 245 volume_metadata->device_path.reset( |
246 new std::string(volume_info.system_path_prefix.AsUTF8Unsafe())); | 246 new std::string(volume_info.system_path_prefix.AsUTF8Unsafe())); |
247 volume_metadata->is_parent_device.reset( | 247 volume_metadata->is_parent_device.reset( |
248 new bool(volume_info.is_parent)); | 248 new bool(volume_info.is_parent)); |
249 } else { | 249 } else { |
250 volume_metadata->device_type = | 250 volume_metadata->device_type = |
251 file_browser_private::DEVICE_TYPE_NONE; | 251 file_manager_private::DEVICE_TYPE_NONE; |
252 } | 252 } |
253 | 253 |
254 volume_metadata->is_read_only = volume_info.is_read_only; | 254 volume_metadata->is_read_only = volume_info.is_read_only; |
255 | 255 |
256 switch (volume_info.mount_condition) { | 256 switch (volume_info.mount_condition) { |
257 case chromeos::disks::MOUNT_CONDITION_NONE: | 257 case chromeos::disks::MOUNT_CONDITION_NONE: |
258 volume_metadata->mount_condition = | 258 volume_metadata->mount_condition = |
259 file_browser_private::MOUNT_CONDITION_NONE; | 259 file_manager_private::MOUNT_CONDITION_NONE; |
260 break; | 260 break; |
261 case chromeos::disks::MOUNT_CONDITION_UNKNOWN_FILESYSTEM: | 261 case chromeos::disks::MOUNT_CONDITION_UNKNOWN_FILESYSTEM: |
262 volume_metadata->mount_condition = | 262 volume_metadata->mount_condition = |
263 file_browser_private::MOUNT_CONDITION_UNKNOWN; | 263 file_manager_private::MOUNT_CONDITION_UNKNOWN; |
264 break; | 264 break; |
265 case chromeos::disks::MOUNT_CONDITION_UNSUPPORTED_FILESYSTEM: | 265 case chromeos::disks::MOUNT_CONDITION_UNSUPPORTED_FILESYSTEM: |
266 volume_metadata->mount_condition = | 266 volume_metadata->mount_condition = |
267 file_browser_private::MOUNT_CONDITION_UNSUPPORTED; | 267 file_manager_private::MOUNT_CONDITION_UNSUPPORTED; |
268 break; | 268 break; |
269 } | 269 } |
270 } | 270 } |
271 | 271 |
272 base::FilePath GetLocalPathFromURL(content::RenderViewHost* render_view_host, | 272 base::FilePath GetLocalPathFromURL(content::RenderViewHost* render_view_host, |
273 Profile* profile, | 273 Profile* profile, |
274 const GURL& url) { | 274 const GURL& url) { |
275 DCHECK(render_view_host); | 275 DCHECK(render_view_host); |
276 DCHECK(profile); | 276 DCHECK(profile); |
277 | 277 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 } | 326 } |
327 | 327 |
328 drive::EventLogger* GetLogger(Profile* profile) { | 328 drive::EventLogger* GetLogger(Profile* profile) { |
329 drive::DriveIntegrationService* service = | 329 drive::DriveIntegrationService* service = |
330 drive::DriveIntegrationServiceFactory::FindForProfile(profile); | 330 drive::DriveIntegrationServiceFactory::FindForProfile(profile); |
331 return service ? service->event_logger() : NULL; | 331 return service ? service->event_logger() : NULL; |
332 } | 332 } |
333 | 333 |
334 } // namespace util | 334 } // namespace util |
335 } // namespace file_manager | 335 } // namespace file_manager |
OLD | NEW |