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

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

Issue 120533006: Stub for Privet file system (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 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 | Annotate | Revision Log
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/callback.h" 9 #include "base/callback.h"
10 #include "base/command_line.h"
10 #include "base/files/file_path.h" 11 #include "base/files/file_path.h"
11 #include "base/logging.h" 12 #include "base/logging.h"
12 #include "base/memory/singleton.h" 13 #include "base/memory/singleton.h"
13 #include "base/prefs/pref_service.h" 14 #include "base/prefs/pref_service.h"
14 #include "chrome/browser/chromeos/drive/drive_integration_service.h" 15 #include "chrome/browser/chromeos/drive/drive_integration_service.h"
15 #include "chrome/browser/chromeos/drive/file_errors.h" 16 #include "chrome/browser/chromeos/drive/file_errors.h"
16 #include "chrome/browser/chromeos/drive/file_system_interface.h" 17 #include "chrome/browser/chromeos/drive/file_system_interface.h"
17 #include "chrome/browser/chromeos/drive/file_system_util.h" 18 #include "chrome/browser/chromeos/drive/file_system_util.h"
18 #include "chrome/browser/chromeos/file_manager/mounted_disk_monitor.h" 19 #include "chrome/browser/chromeos/file_manager/mounted_disk_monitor.h"
19 #include "chrome/browser/chromeos/file_manager/path_util.h" 20 #include "chrome/browser/chromeos/file_manager/path_util.h"
20 #include "chrome/browser/chromeos/file_manager/volume_manager_factory.h" 21 #include "chrome/browser/chromeos/file_manager/volume_manager_factory.h"
21 #include "chrome/browser/chromeos/file_manager/volume_manager_observer.h" 22 #include "chrome/browser/chromeos/file_manager/volume_manager_observer.h"
23 #include "chrome/browser/local_discovery/storage/privet_filesystem_constants.h"
22 #include "chrome/browser/profiles/profile.h" 24 #include "chrome/browser/profiles/profile.h"
25 #include "chrome/common/chrome_switches.h"
23 #include "chrome/common/pref_names.h" 26 #include "chrome/common/pref_names.h"
24 #include "chromeos/dbus/cros_disks_client.h" 27 #include "chromeos/dbus/cros_disks_client.h"
25 #include "chromeos/disks/disk_mount_manager.h" 28 #include "chromeos/disks/disk_mount_manager.h"
26 #include "content/public/browser/browser_thread.h" 29 #include "content/public/browser/browser_thread.h"
27 #include "webkit/browser/fileapi/external_mount_points.h" 30 #include "webkit/browser/fileapi/external_mount_points.h"
28 31
29 namespace file_manager { 32 namespace file_manager {
30 namespace { 33 namespace {
31 34
32 // Called on completion of MarkCacheFileAsUnmounted. 35 // Called on completion of MarkCacheFileAsUnmounted.
(...skipping 23 matching lines...) Expand all
56 std::string VolumeTypeToString(VolumeType type) { 59 std::string VolumeTypeToString(VolumeType type) {
57 switch (type) { 60 switch (type) {
58 case VOLUME_TYPE_GOOGLE_DRIVE: 61 case VOLUME_TYPE_GOOGLE_DRIVE:
59 return "drive"; 62 return "drive";
60 case VOLUME_TYPE_DOWNLOADS_DIRECTORY: 63 case VOLUME_TYPE_DOWNLOADS_DIRECTORY:
61 return "downloads"; 64 return "downloads";
62 case VOLUME_TYPE_REMOVABLE_DISK_PARTITION: 65 case VOLUME_TYPE_REMOVABLE_DISK_PARTITION:
63 return "removable"; 66 return "removable";
64 case VOLUME_TYPE_MOUNTED_ARCHIVE_FILE: 67 case VOLUME_TYPE_MOUNTED_ARCHIVE_FILE:
65 return "archive"; 68 return "archive";
69 case VOLUME_TYPE_CLOUD_DEVICE:
70 return "cloud_device";
66 } 71 }
67 NOTREACHED(); 72 NOTREACHED();
68 return ""; 73 return "";
69 } 74 }
70 75
71 // Generates a unique volume ID for the given volume info. 76 // Generates a unique volume ID for the given volume info.
72 std::string GenerateVolumeId(const VolumeInfo& volume_info) { 77 std::string GenerateVolumeId(const VolumeInfo& volume_info) {
73 // For the same volume type, base names are unique, as mount points are 78 // For the same volume type, base names are unique, as mount points are
74 // flat for the same volume type. 79 // flat for the same volume type.
75 return (VolumeTypeToString(volume_info.type) + ":" + 80 return (VolumeTypeToString(volume_info.type) + ":" +
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 } else { 129 } else {
125 volume_info.device_type = chromeos::DEVICE_TYPE_UNKNOWN; 130 volume_info.device_type = chromeos::DEVICE_TYPE_UNKNOWN;
126 volume_info.is_parent = false; 131 volume_info.is_parent = false;
127 volume_info.is_read_only = false; 132 volume_info.is_read_only = false;
128 } 133 }
129 volume_info.volume_id = GenerateVolumeId(volume_info); 134 volume_info.volume_id = GenerateVolumeId(volume_info);
130 135
131 return volume_info; 136 return volume_info;
132 } 137 }
133 138
139 VolumeInfo CreatePrivetVolumeInfo() {
140 VolumeInfo volume_info;
141 volume_info.type = VOLUME_TYPE_CLOUD_DEVICE;
142 volume_info.mount_path = base::FilePath(local_discovery::kPrivetFilePath);
143 volume_info.mount_condition = chromeos::disks::MOUNT_CONDITION_NONE;
144 volume_info.is_parent = true;
145 volume_info.is_read_only = true;
146 volume_info.volume_id = GenerateVolumeId(volume_info);
147 return volume_info;
148 }
149
134 } // namespace 150 } // namespace
135 151
136 VolumeInfo::VolumeInfo() { 152 VolumeInfo::VolumeInfo() {
137 } 153 }
138 154
139 VolumeInfo::~VolumeInfo() { 155 VolumeInfo::~VolumeInfo() {
140 } 156 }
141 157
142 VolumeManager::VolumeManager( 158 VolumeManager::VolumeManager(
143 Profile* profile, 159 Profile* profile,
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 const chromeos::disks::DiskMountManager::MountPointMap& mount_points = 265 const chromeos::disks::DiskMountManager::MountPointMap& mount_points =
250 disk_mount_manager_->mount_points(); 266 disk_mount_manager_->mount_points();
251 for (chromeos::disks::DiskMountManager::MountPointMap::const_iterator it = 267 for (chromeos::disks::DiskMountManager::MountPointMap::const_iterator it =
252 mount_points.begin(); 268 mount_points.begin();
253 it != mount_points.end(); ++it) { 269 it != mount_points.end(); ++it) {
254 result.push_back(CreateVolumeInfoFromMountPointInfo( 270 result.push_back(CreateVolumeInfoFromMountPointInfo(
255 it->second, 271 it->second,
256 disk_mount_manager_->FindDiskBySourcePath(it->second.source_path))); 272 disk_mount_manager_->FindDiskBySourcePath(it->second.source_path)));
257 } 273 }
258 274
275 if (CommandLine::ForCurrentProcess()->HasSwitch(
276 switches::kEnablePrivetStorage)) {
277 result.push_back(CreatePrivetVolumeInfo());
278 }
279
259 return result; 280 return result;
260 } 281 }
261 282
262 bool VolumeManager::FindVolumeInfoById(const std::string& volume_id, 283 bool VolumeManager::FindVolumeInfoById(const std::string& volume_id,
263 VolumeInfo* result) const { 284 VolumeInfo* result) const {
264 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); 285 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
265 DCHECK(result); 286 DCHECK(result);
266 287
267 std::vector<VolumeInfo> info_list = GetVolumeInfoList(); 288 std::vector<VolumeInfo> info_list = GetVolumeInfoList();
268 for (size_t i = 0; i < info_list.size(); ++i) { 289 for (size_t i = 0; i < info_list.size(); ++i) {
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 disk_mount_manager_->mount_points().begin()->second.mount_path; 494 disk_mount_manager_->mount_points().begin()->second.mount_path;
474 disk_mount_manager_->UnmountPath( 495 disk_mount_manager_->UnmountPath(
475 mount_path, 496 mount_path,
476 chromeos::UNMOUNT_OPTIONS_NONE, 497 chromeos::UNMOUNT_OPTIONS_NONE,
477 chromeos::disks::DiskMountManager::UnmountPathCallback()); 498 chromeos::disks::DiskMountManager::UnmountPathCallback());
478 } 499 }
479 } 500 }
480 } 501 }
481 502
482 } // namespace file_manager 503 } // namespace file_manager
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698