| 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..701f38d9760995541f949209f0f5fbdd7f7c6dc7 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,40 @@ 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) {
|
| + SetResult(new base::StringValue(hash));
|
| + SendResponse(true);
|
| +}
|
| +
|
| } // namespace extensions
|
|
|