| Index: chrome/browser/chromeos/file_manager/fileapi_util.cc
|
| diff --git a/chrome/browser/chromeos/file_manager/fileapi_util.cc b/chrome/browser/chromeos/file_manager/fileapi_util.cc
|
| index 15550c52bedbbfc99beb321a9d7924c207e1c83e..435eb8d1c4eac71e1bee95c1fb13fb9b4ce57022 100644
|
| --- a/chrome/browser/chromeos/file_manager/fileapi_util.cc
|
| +++ b/chrome/browser/chromeos/file_manager/fileapi_util.cc
|
| @@ -229,6 +229,17 @@ void CheckIfDirectoryExistsOnIOThread(
|
| file_system_url, callback);
|
| }
|
|
|
| +// Used by GetMetadataForPath
|
| +void GetMetadataOnIOThread(
|
| + scoped_refptr<storage::FileSystemContext> file_system_context,
|
| + const GURL& url,
|
| + const storage::FileSystemOperationRunner::GetMetadataCallback& callback) {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::IO);
|
| + storage::FileSystemURL file_system_url = file_system_context->CrackURL(url);
|
| + file_system_context->operation_runner()->GetMetadata(file_system_url,
|
| + callback);
|
| +}
|
| +
|
| // Checks if the |file_path| points non-native location or not.
|
| bool IsUnderNonNativeLocalPath(const storage::FileSystemContext& context,
|
| const base::FilePath& file_path) {
|
| @@ -557,9 +568,26 @@ void CheckIfDirectoryExists(
|
|
|
| BrowserThread::PostTask(
|
| BrowserThread::IO, FROM_HERE,
|
| - base::Bind(&CheckIfDirectoryExistsOnIOThread,
|
| - file_system_context,
|
| - url,
|
| + base::Bind(&CheckIfDirectoryExistsOnIOThread, file_system_context, url,
|
| + google_apis::CreateRelayCallback(callback)));
|
| +}
|
| +
|
| +void GetMetadataForPath(
|
| + scoped_refptr<storage::FileSystemContext> file_system_context,
|
| + const GURL& url,
|
| + const storage::FileSystemOperationRunner::GetMetadataCallback& callback) {
|
| + DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
| +
|
| + // Check the existence of directory using file system API implementation on
|
| + // behalf of the file manager app. We need to grant access beforehand.
|
| + storage::ExternalFileSystemBackend* backend =
|
| + file_system_context->external_backend();
|
| + DCHECK(backend);
|
| + backend->GrantFullAccessToExtension(kFileManagerAppId);
|
| +
|
| + BrowserThread::PostTask(
|
| + BrowserThread::IO, FROM_HERE,
|
| + base::Bind(&GetMetadataOnIOThread, file_system_context, url,
|
| google_apis::CreateRelayCallback(callback)));
|
| }
|
|
|
|
|