OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/drive/file_system.h" | 5 #include "chrome/browser/chromeos/drive/file_system.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
9 #include "base/message_loop/message_loop_proxy.h" | 9 #include "base/message_loop/message_loop_proxy.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
211 resource_metadata_->ResetOnUIThread(base::Bind( | 211 resource_metadata_->ResetOnUIThread(base::Bind( |
212 &FileSystem::ReloadAfterReset, | 212 &FileSystem::ReloadAfterReset, |
213 weak_ptr_factory_.GetWeakPtr())); | 213 weak_ptr_factory_.GetWeakPtr())); |
214 } | 214 } |
215 | 215 |
216 void FileSystem::Initialize() { | 216 void FileSystem::Initialize() { |
217 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 217 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
218 | 218 |
219 SetupChangeListLoader(); | 219 SetupChangeListLoader(); |
220 | 220 |
221 // Allocate the drive operation handlers. | 221 // Allocate the file system operation handlers. |
222 drive_operations_.Init(this, // OperationObserver | 222 operations_.Init(this, // OperationObserver |
223 scheduler_, | 223 scheduler_, |
224 resource_metadata_, | 224 resource_metadata_, |
225 cache_, | 225 cache_, |
226 this, // FileSystemInterface | 226 this, // FileSystemInterface |
227 drive_service_, | 227 drive_service_, |
228 blocking_task_runner_); | 228 blocking_task_runner_); |
229 | 229 |
230 PrefService* pref_service = profile_->GetPrefs(); | 230 PrefService* pref_service = profile_->GetPrefs(); |
231 hide_hosted_docs_ = pref_service->GetBoolean(prefs::kDisableDriveHostedFiles); | 231 hide_hosted_docs_ = pref_service->GetBoolean(prefs::kDisableDriveHostedFiles); |
232 | 232 |
233 InitializePreferenceObserver(); | 233 InitializePreferenceObserver(); |
234 } | 234 } |
235 | 235 |
236 void FileSystem::ReloadAfterReset(FileError error) { | 236 void FileSystem::ReloadAfterReset(FileError error) { |
237 if (error != FILE_ERROR_OK) { | 237 if (error != FILE_ERROR_OK) { |
238 LOG(ERROR) << "Failed to reset the resource metadata: " | 238 LOG(ERROR) << "Failed to reset the resource metadata: " |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 base::Bind(&RunGetResourceEntryWithFilePathCallback, | 323 base::Bind(&RunGetResourceEntryWithFilePathCallback, |
324 callback, | 324 callback, |
325 file_path)); | 325 file_path)); |
326 } | 326 } |
327 | 327 |
328 void FileSystem::TransferFileFromRemoteToLocal( | 328 void FileSystem::TransferFileFromRemoteToLocal( |
329 const base::FilePath& remote_src_file_path, | 329 const base::FilePath& remote_src_file_path, |
330 const base::FilePath& local_dest_file_path, | 330 const base::FilePath& local_dest_file_path, |
331 const FileOperationCallback& callback) { | 331 const FileOperationCallback& callback) { |
332 | 332 |
333 drive_operations_.TransferFileFromRemoteToLocal(remote_src_file_path, | 333 operations_.TransferFileFromRemoteToLocal(remote_src_file_path, |
334 local_dest_file_path, | 334 local_dest_file_path, |
335 callback); | 335 callback); |
336 } | 336 } |
337 | 337 |
338 void FileSystem::TransferFileFromLocalToRemote( | 338 void FileSystem::TransferFileFromLocalToRemote( |
339 const base::FilePath& local_src_file_path, | 339 const base::FilePath& local_src_file_path, |
340 const base::FilePath& remote_dest_file_path, | 340 const base::FilePath& remote_dest_file_path, |
341 const FileOperationCallback& callback) { | 341 const FileOperationCallback& callback) { |
342 | 342 |
343 drive_operations_.TransferFileFromLocalToRemote(local_src_file_path, | 343 operations_.TransferFileFromLocalToRemote(local_src_file_path, |
344 remote_dest_file_path, | 344 remote_dest_file_path, |
345 callback); | 345 callback); |
346 } | 346 } |
347 | 347 |
348 void FileSystem::Copy(const base::FilePath& src_file_path, | 348 void FileSystem::Copy(const base::FilePath& src_file_path, |
349 const base::FilePath& dest_file_path, | 349 const base::FilePath& dest_file_path, |
350 const FileOperationCallback& callback) { | 350 const FileOperationCallback& callback) { |
351 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 351 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
352 DCHECK(!callback.is_null()); | 352 DCHECK(!callback.is_null()); |
353 drive_operations_.Copy(src_file_path, dest_file_path, callback); | 353 operations_.Copy(src_file_path, dest_file_path, callback); |
354 } | 354 } |
355 | 355 |
356 void FileSystem::Move(const base::FilePath& src_file_path, | 356 void FileSystem::Move(const base::FilePath& src_file_path, |
357 const base::FilePath& dest_file_path, | 357 const base::FilePath& dest_file_path, |
358 const FileOperationCallback& callback) { | 358 const FileOperationCallback& callback) { |
359 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 359 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
360 DCHECK(!callback.is_null()); | 360 DCHECK(!callback.is_null()); |
361 drive_operations_.Move(src_file_path, dest_file_path, callback); | 361 operations_.Move(src_file_path, dest_file_path, callback); |
362 } | 362 } |
363 | 363 |
364 void FileSystem::Remove(const base::FilePath& file_path, | 364 void FileSystem::Remove(const base::FilePath& file_path, |
365 bool is_recursive, | 365 bool is_recursive, |
366 const FileOperationCallback& callback) { | 366 const FileOperationCallback& callback) { |
367 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 367 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
368 DCHECK(!callback.is_null()); | 368 DCHECK(!callback.is_null()); |
369 drive_operations_.Remove(file_path, is_recursive, callback); | 369 operations_.Remove(file_path, is_recursive, callback); |
370 } | 370 } |
371 | 371 |
372 void FileSystem::CreateDirectory( | 372 void FileSystem::CreateDirectory( |
373 const base::FilePath& directory_path, | 373 const base::FilePath& directory_path, |
374 bool is_exclusive, | 374 bool is_exclusive, |
375 bool is_recursive, | 375 bool is_recursive, |
376 const FileOperationCallback& callback) { | 376 const FileOperationCallback& callback) { |
377 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 377 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
378 DCHECK(!callback.is_null()); | 378 DCHECK(!callback.is_null()); |
379 | 379 |
(...skipping 11 matching lines...) Expand all Loading... |
391 const FileOperationCallback& callback, | 391 const FileOperationCallback& callback, |
392 FileError load_error) { | 392 FileError load_error) { |
393 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 393 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
394 DCHECK(!callback.is_null()); | 394 DCHECK(!callback.is_null()); |
395 | 395 |
396 if (load_error != FILE_ERROR_OK) { | 396 if (load_error != FILE_ERROR_OK) { |
397 callback.Run(load_error); | 397 callback.Run(load_error); |
398 return; | 398 return; |
399 } | 399 } |
400 | 400 |
401 drive_operations_.CreateDirectory( | 401 operations_.CreateDirectory( |
402 directory_path, is_exclusive, is_recursive, callback); | 402 directory_path, is_exclusive, is_recursive, callback); |
403 } | 403 } |
404 | 404 |
405 void FileSystem::CreateFile(const base::FilePath& file_path, | 405 void FileSystem::CreateFile(const base::FilePath& file_path, |
406 bool is_exclusive, | 406 bool is_exclusive, |
407 const FileOperationCallback& callback) { | 407 const FileOperationCallback& callback) { |
408 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 408 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
409 DCHECK(!callback.is_null()); | 409 DCHECK(!callback.is_null()); |
410 | 410 |
411 drive_operations_.CreateFile(file_path, is_exclusive, callback); | 411 operations_.CreateFile(file_path, is_exclusive, callback); |
412 } | 412 } |
413 | 413 |
414 void FileSystem::TouchFile(const base::FilePath& file_path, | 414 void FileSystem::TouchFile(const base::FilePath& file_path, |
415 const base::Time& last_access_time, | 415 const base::Time& last_access_time, |
416 const base::Time& last_modified_time, | 416 const base::Time& last_modified_time, |
417 const FileOperationCallback& callback) { | 417 const FileOperationCallback& callback) { |
418 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 418 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
419 DCHECK(!last_access_time.is_null()); | 419 DCHECK(!last_access_time.is_null()); |
420 DCHECK(!last_modified_time.is_null()); | 420 DCHECK(!last_modified_time.is_null()); |
421 DCHECK(!callback.is_null()); | 421 DCHECK(!callback.is_null()); |
422 | 422 |
423 drive_operations_.TouchFile( | 423 operations_.TouchFile( |
424 file_path, last_access_time, last_modified_time, callback); | 424 file_path, last_access_time, last_modified_time, callback); |
425 } | 425 } |
426 | 426 |
427 void FileSystem::Pin(const base::FilePath& file_path, | 427 void FileSystem::Pin(const base::FilePath& file_path, |
428 const FileOperationCallback& callback) { | 428 const FileOperationCallback& callback) { |
429 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 429 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
430 DCHECK(!callback.is_null()); | 430 DCHECK(!callback.is_null()); |
431 | 431 |
432 GetResourceEntryByPath(file_path, | 432 GetResourceEntryByPath(file_path, |
433 base::Bind(&FileSystem::PinAfterGetResourceEntryByPath, | 433 base::Bind(&FileSystem::PinAfterGetResourceEntryByPath, |
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1147 callback); | 1147 callback); |
1148 } | 1148 } |
1149 | 1149 |
1150 void FileSystem::UpdateFileByResourceId( | 1150 void FileSystem::UpdateFileByResourceId( |
1151 const std::string& resource_id, | 1151 const std::string& resource_id, |
1152 const DriveClientContext& context, | 1152 const DriveClientContext& context, |
1153 const FileOperationCallback& callback) { | 1153 const FileOperationCallback& callback) { |
1154 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1154 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1155 DCHECK(!callback.is_null()); | 1155 DCHECK(!callback.is_null()); |
1156 | 1156 |
1157 drive_operations_.UpdateFileByResourceId(resource_id, context, callback); | 1157 operations_.UpdateFileByResourceId(resource_id, context, callback); |
1158 } | 1158 } |
1159 | 1159 |
1160 void FileSystem::GetAvailableSpace( | 1160 void FileSystem::GetAvailableSpace( |
1161 const GetAvailableSpaceCallback& callback) { | 1161 const GetAvailableSpaceCallback& callback) { |
1162 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1162 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1163 DCHECK(!callback.is_null()); | 1163 DCHECK(!callback.is_null()); |
1164 | 1164 |
1165 scheduler_->GetAboutResource( | 1165 scheduler_->GetAboutResource( |
1166 base::Bind(&FileSystem::OnGetAboutResource, | 1166 base::Bind(&FileSystem::OnGetAboutResource, |
1167 weak_ptr_factory_.GetWeakPtr(), | 1167 weak_ptr_factory_.GetWeakPtr(), |
(...skipping 18 matching lines...) Expand all Loading... |
1186 about_resource->quota_bytes_total(), | 1186 about_resource->quota_bytes_total(), |
1187 about_resource->quota_bytes_used()); | 1187 about_resource->quota_bytes_used()); |
1188 } | 1188 } |
1189 | 1189 |
1190 void FileSystem::Search(const std::string& search_query, | 1190 void FileSystem::Search(const std::string& search_query, |
1191 const GURL& next_feed, | 1191 const GURL& next_feed, |
1192 const SearchCallback& callback) { | 1192 const SearchCallback& callback) { |
1193 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1193 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1194 DCHECK(!callback.is_null()); | 1194 DCHECK(!callback.is_null()); |
1195 | 1195 |
1196 drive_operations_.Search(search_query, next_feed, callback); | 1196 operations_.Search(search_query, next_feed, callback); |
1197 } | 1197 } |
1198 | 1198 |
1199 void FileSystem::SearchMetadata(const std::string& query, | 1199 void FileSystem::SearchMetadata(const std::string& query, |
1200 int options, | 1200 int options, |
1201 int at_most_num_matches, | 1201 int at_most_num_matches, |
1202 const SearchMetadataCallback& callback) { | 1202 const SearchMetadataCallback& callback) { |
1203 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 1203 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
1204 | 1204 |
1205 if (hide_hosted_docs_) | 1205 if (hide_hosted_docs_) |
1206 options |= SEARCH_METADATA_EXCLUDE_HOSTED_DOCUMENTS; | 1206 options |= SEARCH_METADATA_EXCLUDE_HOSTED_DOCUMENTS; |
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1645 util::ConvertPlatformFileInfoToResourceEntry(*file_info, &entry_file_info); | 1645 util::ConvertPlatformFileInfoToResourceEntry(*file_info, &entry_file_info); |
1646 *entry->mutable_file_info() = entry_file_info; | 1646 *entry->mutable_file_info() = entry_file_info; |
1647 callback.Run(FILE_ERROR_OK, entry.Pass()); | 1647 callback.Run(FILE_ERROR_OK, entry.Pass()); |
1648 } | 1648 } |
1649 | 1649 |
1650 void FileSystem::CancelJobInScheduler(JobID id) { | 1650 void FileSystem::CancelJobInScheduler(JobID id) { |
1651 scheduler_->CancelJob(id); | 1651 scheduler_->CancelJob(id); |
1652 } | 1652 } |
1653 | 1653 |
1654 } // namespace drive | 1654 } // namespace drive |
OLD | NEW |