| 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/file_manager/fileapi_util.h" | 5 #include "chrome/browser/chromeos/file_manager/fileapi_util.h" |
| 6 | 6 |
| 7 #include "base/files/file.h" | 7 #include "base/files/file.h" |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "chrome/browser/chromeos/drive/file_system_util.h" | 9 #include "chrome/browser/chromeos/drive/file_system_util.h" |
| 10 #include "chrome/browser/chromeos/file_manager/app_id.h" | 10 #include "chrome/browser/chromeos/file_manager/app_id.h" |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 342 return; | 342 return; |
| 343 } | 343 } |
| 344 | 344 |
| 345 if (!it->file_system_url.is_valid()) { | 345 if (!it->file_system_url.is_valid()) { |
| 346 FillMetadataOnIOThread(lifetime.Pass(), it + 1); | 346 FillMetadataOnIOThread(lifetime.Pass(), it + 1); |
| 347 return; | 347 return; |
| 348 } | 348 } |
| 349 | 349 |
| 350 context_->operation_runner()->GetMetadata( | 350 context_->operation_runner()->GetMetadata( |
| 351 context_->CrackURL(it->file_system_url), | 351 context_->CrackURL(it->file_system_url), |
| 352 storage::FileSystemOperation::GET_METADATA_FIELD_IS_DIRECTORY | |
| 353 storage::FileSystemOperation::GET_METADATA_FIELD_SIZE | |
| 354 storage::FileSystemOperation::GET_METADATA_FIELD_LAST_MODIFIED, |
| 352 base::Bind(&ConvertSelectedFileInfoListToFileChooserFileInfoListImpl:: | 355 base::Bind(&ConvertSelectedFileInfoListToFileChooserFileInfoListImpl:: |
| 353 OnGotMetadataOnIOThread, | 356 OnGotMetadataOnIOThread, |
| 354 base::Unretained(this), | 357 base::Unretained(this), base::Passed(&lifetime), it)); |
| 355 base::Passed(&lifetime), | |
| 356 it)); | |
| 357 } | 358 } |
| 358 | 359 |
| 359 // Callback invoked after GetMetadata. | 360 // Callback invoked after GetMetadata. |
| 360 void OnGotMetadataOnIOThread(Lifetime lifetime, | 361 void OnGotMetadataOnIOThread(Lifetime lifetime, |
| 361 const FileChooserFileInfoList::iterator& it, | 362 const FileChooserFileInfoList::iterator& it, |
| 362 base::File::Error result, | 363 base::File::Error result, |
| 363 const base::File::Info& file_info) { | 364 const base::File::Info& file_info) { |
| 364 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 365 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 365 | 366 |
| 366 if (result != base::File::FILE_OK) { | 367 if (result != base::File::FILE_OK) { |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 547 BrowserThread::IO, FROM_HERE, | 548 BrowserThread::IO, FROM_HERE, |
| 548 base::Bind(base::IgnoreResult( | 549 base::Bind(base::IgnoreResult( |
| 549 &storage::FileSystemOperationRunner::DirectoryExists), | 550 &storage::FileSystemOperationRunner::DirectoryExists), |
| 550 file_system_context->operation_runner()->AsWeakPtr(), | 551 file_system_context->operation_runner()->AsWeakPtr(), |
| 551 internal_url, google_apis::CreateRelayCallback(callback))); | 552 internal_url, google_apis::CreateRelayCallback(callback))); |
| 552 } | 553 } |
| 553 | 554 |
| 554 void GetMetadataForPath( | 555 void GetMetadataForPath( |
| 555 scoped_refptr<storage::FileSystemContext> file_system_context, | 556 scoped_refptr<storage::FileSystemContext> file_system_context, |
| 556 const base::FilePath& entry_path, | 557 const base::FilePath& entry_path, |
| 558 int fields, |
| 557 const storage::FileSystemOperationRunner::GetMetadataCallback& callback) { | 559 const storage::FileSystemOperationRunner::GetMetadataCallback& callback) { |
| 558 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 560 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 559 | 561 |
| 560 storage::ExternalFileSystemBackend* const backend = | 562 storage::ExternalFileSystemBackend* const backend = |
| 561 file_system_context->external_backend(); | 563 file_system_context->external_backend(); |
| 562 DCHECK(backend); | 564 DCHECK(backend); |
| 563 const storage::FileSystemURL internal_url = | 565 const storage::FileSystemURL internal_url = |
| 564 backend->CreateInternalURL(file_system_context.get(), entry_path); | 566 backend->CreateInternalURL(file_system_context.get(), entry_path); |
| 565 | 567 |
| 566 BrowserThread::PostTask( | 568 BrowserThread::PostTask( |
| 567 BrowserThread::IO, FROM_HERE, | 569 BrowserThread::IO, FROM_HERE, |
| 568 base::Bind( | 570 base::Bind( |
| 569 base::IgnoreResult(&storage::FileSystemOperationRunner::GetMetadata), | 571 base::IgnoreResult(&storage::FileSystemOperationRunner::GetMetadata), |
| 570 file_system_context->operation_runner()->AsWeakPtr(), internal_url, | 572 file_system_context->operation_runner()->AsWeakPtr(), internal_url, |
| 571 google_apis::CreateRelayCallback(callback))); | 573 fields, google_apis::CreateRelayCallback(callback))); |
| 572 } | 574 } |
| 573 | 575 |
| 574 storage::FileSystemURL CreateIsolatedURLFromVirtualPath( | 576 storage::FileSystemURL CreateIsolatedURLFromVirtualPath( |
| 575 const storage::FileSystemContext& context, | 577 const storage::FileSystemContext& context, |
| 576 const GURL& origin, | 578 const GURL& origin, |
| 577 const base::FilePath& virtual_path) { | 579 const base::FilePath& virtual_path) { |
| 578 const storage::FileSystemURL original_url = | 580 const storage::FileSystemURL original_url = |
| 579 context.CreateCrackedFileSystemURL( | 581 context.CreateCrackedFileSystemURL( |
| 580 origin, storage::kFileSystemTypeExternal, virtual_path); | 582 origin, storage::kFileSystemTypeExternal, virtual_path); |
| 581 | 583 |
| 582 std::string register_name; | 584 std::string register_name; |
| 583 const std::string isolated_file_system_id = | 585 const std::string isolated_file_system_id = |
| 584 storage::IsolatedContext::GetInstance()->RegisterFileSystemForPath( | 586 storage::IsolatedContext::GetInstance()->RegisterFileSystemForPath( |
| 585 original_url.type(), | 587 original_url.type(), |
| 586 original_url.filesystem_id(), | 588 original_url.filesystem_id(), |
| 587 original_url.path(), | 589 original_url.path(), |
| 588 ®ister_name); | 590 ®ister_name); |
| 589 const storage::FileSystemURL isolated_url = | 591 const storage::FileSystemURL isolated_url = |
| 590 context.CreateCrackedFileSystemURL( | 592 context.CreateCrackedFileSystemURL( |
| 591 origin, | 593 origin, |
| 592 storage::kFileSystemTypeIsolated, | 594 storage::kFileSystemTypeIsolated, |
| 593 base::FilePath(isolated_file_system_id).Append(register_name)); | 595 base::FilePath(isolated_file_system_id).Append(register_name)); |
| 594 return isolated_url; | 596 return isolated_url; |
| 595 } | 597 } |
| 596 | 598 |
| 597 } // namespace util | 599 } // namespace util |
| 598 } // namespace file_manager | 600 } // namespace file_manager |
| OLD | NEW |