Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Unified Diff: chrome/browser/chromeos/file_system_provider/provided_file_system.cc

Issue 257493004: [fsp] Refactor handling operations. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed tests. Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 {

Powered by Google App Engine
This is Rietveld 408576698