Chromium Code Reviews| Index: chrome/browser/chromeos/extensions/file_manager/private_api_file_system.cc |
| diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.cc |
| index f0c04de646ba64abf48ef92f99cc6d32104f01e3..b16d13b43932880638662ef953d820b3f43b90b0 100644 |
| --- a/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.cc |
| +++ b/chrome/browser/chromeos/extensions/file_manager/private_api_file_system.cc |
| @@ -21,6 +21,7 @@ |
| #include "chrome/browser/chromeos/file_manager/fileapi_util.h" |
| #include "chrome/browser/chromeos/file_manager/volume_manager.h" |
| #include "chrome/browser/chromeos/fileapi/file_system_backend.h" |
| +#include "chrome/browser/drive/drive_api_util.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| #include "chrome/common/extensions/api/file_manager_private.h" |
| @@ -709,4 +710,41 @@ void FileManagerPrivateInternalResolveIsolatedEntriesFunction:: |
| ResolveIsolatedEntries::Results::Create(entries); |
| SendResponse(true); |
| } |
| + |
| +bool FileManagerPrivateComputeChecksumFunction::RunAsync() { |
| + using extensions::api::file_manager_private::ComputeChecksum::Params; |
| + const scoped_ptr<Params> params(Params::Create(*args_)); |
| + EXTENSION_FUNCTION_VALIDATE(params); |
| + |
| + if (params->file_url.empty()) { |
| + // TODO(kenobi): call SetError() |
| + return false; |
| + } |
| + |
| + scoped_refptr<storage::FileSystemContext> file_system_context = |
| + file_manager::util::GetFileSystemContextForRenderViewHost( |
| + GetProfile(), render_view_host()); |
| + |
| + storage::FileSystemURL file_url( |
| + file_system_context->CrackURL(GURL(params->file_url))); |
| + if (!file_url.is_valid()) { |
| + // TODO(kenobi): Call SetError() |
| + return false; |
| + } |
| + |
| + BrowserThread::PostTaskAndReplyWithResult( |
| + BrowserThread::FILE, |
| + FROM_HERE, |
| + base::Bind(&drive::util::GetMd5Digest, file_url.path()), |
| + base::Bind(&FileManagerPrivateComputeChecksumFunction::Respond, this)); |
| + |
| + return true; |
| +} |
| + |
| +void FileManagerPrivateComputeChecksumFunction::Respond( |
| + const std::string& hash) { |
|
mtomasz
2015/01/09 05:11:28
Does it compile?
Ben Kwa
2015/01/09 06:24:18
Yup, compiles and runs.
|
| + SetResult(new base::StringValue(hash)); |
| + SendResponse(true); |
| +} |
| + |
| } // namespace extensions |