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..e7a1a4be4685a2347f3f1f4731e57f4ebde7a6d3 100644 |
--- a/chrome/browser/chromeos/file_manager/fileapi_util.cc |
+++ b/chrome/browser/chromeos/file_manager/fileapi_util.cc |
@@ -229,6 +229,18 @@ 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); |
+ const 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 +569,24 @@ 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); |
+ |
+ storage::ExternalFileSystemBackend* const 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))); |
} |