Index: chrome/browser/chromeos/file_system_provider/provided_file_system.cc |
diff --git a/chrome/browser/chromeos/file_system_provider/provided_file_system.cc b/chrome/browser/chromeos/file_system_provider/provided_file_system.cc |
index 93a9bd25b6249c54c9988d86eb616baade190db9..5b39f3309e0249081a1c87d4b4e2f5ff0e2ad024 100644 |
--- a/chrome/browser/chromeos/file_system_provider/provided_file_system.cc |
+++ b/chrome/browser/chromeos/file_system_provider/provided_file_system.cc |
@@ -5,7 +5,7 @@ |
#include "chrome/browser/chromeos/file_system_provider/provided_file_system.h" |
#include "base/files/file.h" |
-#include "base/values.h" |
+#include "chrome/browser/chromeos/file_system_provider/operations/unmount.h" |
#include "chrome/browser/chromeos/file_system_provider/request_manager.h" |
#include "chrome/common/extensions/api/file_system_provider.h" |
#include "extensions/browser/event_router.h" |
@@ -14,52 +14,24 @@ namespace chromeos { |
namespace file_system_provider { |
namespace { |
-// Creates values to be passed to request events. These values can be extended |
-// by additional fields. |
-scoped_ptr<base::ListValue> CreateRequestValues(int file_system_id, |
- int request_id) { |
- scoped_ptr<base::ListValue> values(new base::ListValue()); |
- values->AppendInteger(file_system_id); |
- values->AppendInteger(request_id); |
- return values.Pass(); |
-} |
- |
-// Forwards the success callback to the status callback. Ignores arguments, |
-// since unmount request does not provide arguments. |
-void OnRequestUnmountSuccess( |
- const fileapi::AsyncFileUtil::StatusCallback& callback, |
- scoped_ptr<base::DictionaryValue> /* result */, |
- bool /* has_next */) { |
- callback.Run(base::File::FILE_OK); |
-} |
- |
} // namespace |
ProvidedFileSystem::ProvidedFileSystem( |
extensions::EventRouter* event_router, |
const ProvidedFileSystemInfo& file_system_info) |
- : event_router_(event_router), file_system_info_(file_system_info) {} |
+ : event_router_(event_router), file_system_info_(file_system_info) { |
+} |
ProvidedFileSystem::~ProvidedFileSystem() {} |
-bool ProvidedFileSystem::RequestUnmount( |
+void ProvidedFileSystem::RequestUnmount( |
const fileapi::AsyncFileUtil::StatusCallback& callback) { |
- int request_id = request_manager_.CreateRequest( |
- base::Bind(&OnRequestUnmountSuccess, callback), callback); |
- |
- if (!request_id) |
- return false; |
- |
- scoped_ptr<base::ListValue> values( |
- CreateRequestValues(file_system_info_.file_system_id(), request_id)); |
- |
- event_router_->DispatchEventToExtension( |
- file_system_info_.extension_id(), |
- make_scoped_ptr(new extensions::Event( |
- extensions::api::file_system_provider::OnUnmountRequested::kEventName, |
- values.Pass()))); |
- |
- return true; |
+ if (!request_manager_.CreateRequest( |
+ make_scoped_ptr<RequestManager::HandlerInterface>( |
+ new operations::Unmount( |
+ event_router_, file_system_info_, callback)))) { |
+ callback.Run(base::File::FILE_ERROR_SECURITY); |
+ } |
} |
const ProvidedFileSystemInfo& ProvidedFileSystem::GetFileSystemInfo() const { |