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

Unified Diff: chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc

Issue 239993002: [fsp] Create a RequestManager per a ProvidedFileSystem instance. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed and rebased. 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
« no previous file with comments | « no previous file | chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc
diff --git a/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc b/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc
index e9654d2b701f6fff9d7443c9d2b80fa357816ff0..52ebdd87612d808a8cc5e2c9bea0f43cd8cd455a 100644
--- a/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc
+++ b/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc
@@ -7,15 +7,22 @@
#include <string>
#include "base/values.h"
+#include "chrome/browser/chromeos/file_system_provider/provided_file_system_interface.h"
+#include "chrome/browser/chromeos/file_system_provider/request_manager.h"
#include "chrome/browser/chromeos/file_system_provider/service.h"
#include "chrome/common/extensions/api/file_system_provider.h"
#include "chrome/common/extensions/api/file_system_provider_internal.h"
+using chromeos::file_system_provider::ProvidedFileSystemInterface;
+using chromeos::file_system_provider::RequestManager;
+using chromeos::file_system_provider::Service;
+
namespace extensions {
namespace {
// Error names from
// http://www.w3.org/TR/file-system-api/#errors-and-exceptions
+const char kNotFoundErrorName[] = "NotFoundError";
const char kSecurityErrorName[] = "SecurityError";
// Error messages.
@@ -96,8 +103,7 @@ bool FileSystemProviderMountFunction::RunImpl() {
return false;
}
- chromeos::file_system_provider::Service* service =
- chromeos::file_system_provider::Service::Get(GetProfile());
+ Service* service = Service::Get(GetProfile());
DCHECK(service);
int file_system_id =
@@ -127,8 +133,7 @@ bool FileSystemProviderUnmountFunction::RunImpl() {
const scoped_ptr<Params> params(Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params);
- chromeos::file_system_provider::Service* service =
- chromeos::file_system_provider::Service::Get(GetProfile());
+ Service* service = Service::Get(GetProfile());
DCHECK(service);
if (!service->UnmountFileSystem(extension_id(), params->file_system_id)) {
@@ -149,16 +154,25 @@ bool FileSystemProviderInternalUnmountRequestedSuccessFunction::RunImpl() {
const scoped_ptr<Params> params(Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params);
- chromeos::file_system_provider::Service* service =
- chromeos::file_system_provider::Service::Get(GetProfile());
+ Service* service = Service::Get(GetProfile());
DCHECK(service);
- if (!service->request_manager()->FulfillRequest(
- extension_id(),
- params->file_system_id,
- params->request_id,
- scoped_ptr<base::DictionaryValue>(),
- false /* has_more */)) {
+ ProvidedFileSystemInterface* file_system =
+ service->GetProvidedFileSystem(extension_id(), params->file_system_id);
+ if (!file_system) {
+ base::ListValue* result = new base::ListValue();
+ result->Append(
+ CreateError(kNotFoundErrorName, kResponseFailedErrorMessage));
+ SetResult(result);
+ return false;
+ }
+
+ RequestManager* request_manager = file_system->GetRequestManager();
+ DCHECK(request_manager);
+
+ if (!request_manager->FulfillRequest(params->request_id,
+ scoped_ptr<base::DictionaryValue>(),
+ false /* has_more */)) {
// TODO(mtomasz): Pass more detailed errors, rather than just a bool.
base::ListValue* result = new base::ListValue();
result->Append(
@@ -177,15 +191,25 @@ bool FileSystemProviderInternalUnmountRequestedErrorFunction::RunImpl() {
const scoped_ptr<Params> params(Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params);
- chromeos::file_system_provider::Service* service =
- chromeos::file_system_provider::Service::Get(GetProfile());
+ Service* service = Service::Get(GetProfile());
DCHECK(service);
- if (!service->request_manager()->RejectRequest(
- extension_id(),
- params->file_system_id,
- params->request_id,
- ProviderErrorToFileError(params->error))) {
+ ProvidedFileSystemInterface* file_system =
+ service->GetProvidedFileSystem(extension_id(), params->file_system_id);
+ if (!file_system) {
+ base::ListValue* result = new base::ListValue();
+ result->Append(
+ CreateError(kNotFoundErrorName, kResponseFailedErrorMessage));
+ SetResult(result);
+ return false;
+ }
+
+ RequestManager* request_manager = file_system->GetRequestManager();
+ DCHECK(request_manager);
+
+ if (!request_manager->RejectRequest(
+ params->request_id, ProviderErrorToFileError(params->error))) {
+ // TODO(mtomasz): Pass more detailed errors, rather than just a bool.
base::ListValue* result = new base::ListValue();
result->Append(
CreateError(kSecurityErrorName, kResponseFailedErrorMessage));
« no previous file with comments | « no previous file | chrome/browser/chromeos/file_system_provider/fake_provided_file_system.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698