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_mount.h" | 5 #include "chrome/browser/chromeos/extensions/file_manager/private_api_mount.h" |
6 | 6 |
7 #include "base/format_macros.h" | 7 #include "base/format_macros.h" |
8 #include "base/values.h" | 8 #include "base/values.h" |
9 #include "chrome/browser/chromeos/drive/drive_integration_service.h" | 9 #include "chrome/browser/chromeos/drive/drive_integration_service.h" |
10 #include "chrome/browser/chromeos/drive/file_system_interface.h" | 10 #include "chrome/browser/chromeos/drive/file_system_interface.h" |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 result->SetString("mountPath", "Downloads"); | 61 result->SetString("mountPath", "Downloads"); |
62 result->SetString( | 62 result->SetString( |
63 "mountCondition", | 63 "mountCondition", |
64 DiskMountManager::MountConditionToString( | 64 DiskMountManager::MountConditionToString( |
65 chromeos::disks::MOUNT_CONDITION_NONE)); | 65 chromeos::disks::MOUNT_CONDITION_NONE)); |
66 return result; | 66 return result; |
67 } | 67 } |
68 | 68 |
69 } // namespace | 69 } // namespace |
70 | 70 |
71 AddMountFunction::AddMountFunction() { | 71 FileBrowserPrivateAddMountFunction::FileBrowserPrivateAddMountFunction() { |
72 } | 72 } |
73 | 73 |
74 AddMountFunction::~AddMountFunction() { | 74 FileBrowserPrivateAddMountFunction::~FileBrowserPrivateAddMountFunction() { |
75 } | 75 } |
76 | 76 |
77 bool AddMountFunction::RunImpl() { | 77 bool FileBrowserPrivateAddMountFunction::RunImpl() { |
78 // The third argument is simply ignored. | 78 // The third argument is simply ignored. |
79 if (args_->GetSize() != 2 && args_->GetSize() != 3) { | 79 if (args_->GetSize() != 2 && args_->GetSize() != 3) { |
80 error_ = "Invalid argument count"; | 80 error_ = "Invalid argument count"; |
81 return false; | 81 return false; |
82 } | 82 } |
83 | 83 |
84 std::string file_url; | 84 std::string file_url; |
85 if (!args_->GetString(0, &file_url)) { | 85 if (!args_->GetString(0, &file_url)) { |
86 return false; | 86 return false; |
87 } | 87 } |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 drive::DriveIntegrationService* integration_service = | 139 drive::DriveIntegrationService* integration_service = |
140 drive::DriveIntegrationServiceFactory::GetForProfile(profile_); | 140 drive::DriveIntegrationServiceFactory::GetForProfile(profile_); |
141 drive::FileSystemInterface* file_system = | 141 drive::FileSystemInterface* file_system = |
142 integration_service ? integration_service->file_system() : NULL; | 142 integration_service ? integration_service->file_system() : NULL; |
143 if (!file_system) { | 143 if (!file_system) { |
144 SendResponse(false); | 144 SendResponse(false); |
145 break; | 145 break; |
146 } | 146 } |
147 file_system->MarkCacheFileAsMounted( | 147 file_system->MarkCacheFileAsMounted( |
148 drive::util::ExtractDrivePath(path), | 148 drive::util::ExtractDrivePath(path), |
149 base::Bind(&AddMountFunction::OnMountedStateSet, | 149 base::Bind(&FileBrowserPrivateAddMountFunction::OnMountedStateSet, |
150 this, mount_type_str, display_name)); | 150 this, mount_type_str, display_name)); |
151 } else { | 151 } else { |
152 OnMountedStateSet(mount_type_str, display_name, | 152 OnMountedStateSet(mount_type_str, display_name, |
153 drive::FILE_ERROR_OK, path); | 153 drive::FILE_ERROR_OK, path); |
154 } | 154 } |
155 break; | 155 break; |
156 } | 156 } |
157 } | 157 } |
158 | 158 |
159 return true; | 159 return true; |
160 } | 160 } |
161 | 161 |
162 void AddMountFunction::OnMountedStateSet( | 162 void FileBrowserPrivateAddMountFunction::OnMountedStateSet( |
163 const std::string& mount_type, | 163 const std::string& mount_type, |
164 const base::FilePath::StringType& file_name, | 164 const base::FilePath::StringType& file_name, |
165 drive::FileError error, | 165 drive::FileError error, |
166 const base::FilePath& file_path) { | 166 const base::FilePath& file_path) { |
167 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 167 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
168 | 168 |
169 if (error != drive::FILE_ERROR_OK) { | 169 if (error != drive::FILE_ERROR_OK) { |
170 SendResponse(false); | 170 SendResponse(false); |
171 return; | 171 return; |
172 } | 172 } |
173 | 173 |
174 DiskMountManager* disk_mount_manager = DiskMountManager::GetInstance(); | 174 DiskMountManager* disk_mount_manager = DiskMountManager::GetInstance(); |
175 // Pass back the actual source path of the mount point. | 175 // Pass back the actual source path of the mount point. |
176 SetResult(new base::StringValue(file_path.value())); | 176 SetResult(new base::StringValue(file_path.value())); |
177 SendResponse(true); | 177 SendResponse(true); |
178 // MountPath() takes a std::string. | 178 // MountPath() takes a std::string. |
179 disk_mount_manager->MountPath( | 179 disk_mount_manager->MountPath( |
180 file_path.AsUTF8Unsafe(), base::FilePath(file_name).Extension(), | 180 file_path.AsUTF8Unsafe(), base::FilePath(file_name).Extension(), |
181 file_name, DiskMountManager::MountTypeFromString(mount_type)); | 181 file_name, DiskMountManager::MountTypeFromString(mount_type)); |
182 } | 182 } |
183 | 183 |
184 RemoveMountFunction::RemoveMountFunction() { | 184 FileBrowserPrivateRemoveMountFunction::FileBrowserPrivateRemoveMountFunction() { |
185 } | 185 } |
186 | 186 |
187 RemoveMountFunction::~RemoveMountFunction() { | 187 FileBrowserPrivateRemoveMountFunction:: |
| 188 ~FileBrowserPrivateRemoveMountFunction() { |
188 } | 189 } |
189 | 190 |
190 bool RemoveMountFunction::RunImpl() { | 191 bool FileBrowserPrivateRemoveMountFunction::RunImpl() { |
191 if (args_->GetSize() != 1) { | 192 if (args_->GetSize() != 1) { |
192 return false; | 193 return false; |
193 } | 194 } |
194 | 195 |
195 std::string mount_path; | 196 std::string mount_path; |
196 if (!args_->GetString(0, &mount_path)) { | 197 if (!args_->GetString(0, &mount_path)) { |
197 return false; | 198 return false; |
198 } | 199 } |
199 | 200 |
200 drive::util::Log(logging::LOG_INFO, | 201 drive::util::Log(logging::LOG_INFO, |
201 "%s[%d] called. (mount_path: '%s')", | 202 "%s[%d] called. (mount_path: '%s')", |
202 name().c_str(), | 203 name().c_str(), |
203 request_id(), | 204 request_id(), |
204 mount_path.c_str()); | 205 mount_path.c_str()); |
205 set_log_on_completion(true); | 206 set_log_on_completion(true); |
206 | 207 |
207 std::vector<GURL> file_paths; | 208 std::vector<GURL> file_paths; |
208 file_paths.push_back(GURL(mount_path)); | 209 file_paths.push_back(GURL(mount_path)); |
209 file_manager::util::GetSelectedFileInfo( | 210 file_manager::util::GetSelectedFileInfo( |
210 render_view_host(), | 211 render_view_host(), |
211 profile(), | 212 profile(), |
212 file_paths, | 213 file_paths, |
213 file_manager::util::NEED_LOCAL_PATH_FOR_OPENING, | 214 file_manager::util::NEED_LOCAL_PATH_FOR_OPENING, |
214 base::Bind(&RemoveMountFunction::GetSelectedFileInfoResponse, this)); | 215 base::Bind(&FileBrowserPrivateRemoveMountFunction:: |
| 216 GetSelectedFileInfoResponse, this)); |
215 return true; | 217 return true; |
216 } | 218 } |
217 | 219 |
218 void RemoveMountFunction::GetSelectedFileInfoResponse( | 220 void FileBrowserPrivateRemoveMountFunction::GetSelectedFileInfoResponse( |
219 const std::vector<ui::SelectedFileInfo>& files) { | 221 const std::vector<ui::SelectedFileInfo>& files) { |
220 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 222 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
221 | 223 |
222 if (files.size() != 1) { | 224 if (files.size() != 1) { |
223 SendResponse(false); | 225 SendResponse(false); |
224 return; | 226 return; |
225 } | 227 } |
226 | 228 |
227 // TODO(tbarzic): Send response when callback is received, it would make more | 229 // TODO(tbarzic): Send response when callback is received, it would make more |
228 // sense than remembering issued unmount requests in file manager and showing | 230 // sense than remembering issued unmount requests in file manager and showing |
229 // errors for them when MountCompleted event is received. | 231 // errors for them when MountCompleted event is received. |
230 DiskMountManager::GetInstance()->UnmountPath( | 232 DiskMountManager::GetInstance()->UnmountPath( |
231 files[0].local_path.value(), | 233 files[0].local_path.value(), |
232 chromeos::UNMOUNT_OPTIONS_NONE, | 234 chromeos::UNMOUNT_OPTIONS_NONE, |
233 DiskMountManager::UnmountPathCallback()); | 235 DiskMountManager::UnmountPathCallback()); |
234 SendResponse(true); | 236 SendResponse(true); |
235 } | 237 } |
236 | 238 |
237 GetMountPointsFunction::GetMountPointsFunction() { | 239 FileBrowserPrivateGetMountPointsFunction:: |
| 240 FileBrowserPrivateGetMountPointsFunction() { |
238 } | 241 } |
239 | 242 |
240 GetMountPointsFunction::~GetMountPointsFunction() { | 243 FileBrowserPrivateGetMountPointsFunction:: |
| 244 ~FileBrowserPrivateGetMountPointsFunction() { |
241 } | 245 } |
242 | 246 |
243 bool GetMountPointsFunction::RunImpl() { | 247 bool FileBrowserPrivateGetMountPointsFunction::RunImpl() { |
244 if (args_->GetSize()) | 248 if (args_->GetSize()) |
245 return false; | 249 return false; |
246 | 250 |
247 base::ListValue *mounts = new base::ListValue(); | 251 base::ListValue *mounts = new base::ListValue(); |
248 SetResult(mounts); | 252 SetResult(mounts); |
249 | 253 |
250 DiskMountManager* disk_mount_manager = DiskMountManager::GetInstance(); | 254 DiskMountManager* disk_mount_manager = DiskMountManager::GetInstance(); |
251 DiskMountManager::MountPointMap mount_points = | 255 DiskMountManager::MountPointMap mount_points = |
252 disk_mount_manager->mount_points(); | 256 disk_mount_manager->mount_points(); |
253 | 257 |
(...skipping 23 matching lines...) Expand all Loading... |
277 name().c_str(), | 281 name().c_str(), |
278 request_id(), | 282 request_id(), |
279 log_string.c_str(), | 283 log_string.c_str(), |
280 mount_points.size()); | 284 mount_points.size()); |
281 | 285 |
282 SendResponse(true); | 286 SendResponse(true); |
283 return true; | 287 return true; |
284 } | 288 } |
285 | 289 |
286 } // namespace extensions | 290 } // namespace extensions |
OLD | NEW |