summaryrefslogtreecommitdiffstats
path: root/webkit/browser
diff options
context:
space:
mode:
authornhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-12 03:50:02 +0000
committernhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-12 03:50:02 +0000
commita836883d541303acd15229ddf27ab8ca2d40cb71 (patch)
tree1a070af09fcc0d5408a14b9995dddcbac31ccccb /webkit/browser
parent8aff3116ecad4871d621ef61e5cbdf73c0d9beec (diff)
downloadchromium_src-a836883d541303acd15229ddf27ab8ca2d40cb71.zip
chromium_src-a836883d541303acd15229ddf27ab8ca2d40cb71.tar.gz
chromium_src-a836883d541303acd15229ddf27ab8ca2d40cb71.tar.bz2
FileAPI: Factor out getting root URI and FS name parts into each FS backend
We plan to introduce SyncFileSystemBackend to remove SyncFS related code from webkit/browser/fileapi. To do that, this change moves getting root URI and filesystem name parts from FileSystemContext to each FileSystemBackend. BUG=242422 TEST=content_unittests R=kinuko@chromium.org, satorux@chromium.org, tzik@chromium.org Review URL: https://codereview.chromium.org/18300006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211318 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/browser')
-rw-r--r--webkit/browser/fileapi/copy_or_move_file_validator_unittest.cc4
-rw-r--r--webkit/browser/fileapi/copy_or_move_operation_delegate_unittest.cc4
-rw-r--r--webkit/browser/fileapi/file_system_backend.h4
-rw-r--r--webkit/browser/fileapi/file_system_context.cc13
-rw-r--r--webkit/browser/fileapi/isolated_file_system_backend.cc5
-rw-r--r--webkit/browser/fileapi/sandbox_file_system_backend.cc20
-rw-r--r--webkit/browser/fileapi/sandbox_file_system_backend_unittest.cc2
-rw-r--r--webkit/browser/fileapi/test_file_system_backend.cc4
8 files changed, 35 insertions, 21 deletions
diff --git a/webkit/browser/fileapi/copy_or_move_file_validator_unittest.cc b/webkit/browser/fileapi/copy_or_move_file_validator_unittest.cc
index 51dbe77..b271b77 100644
--- a/webkit/browser/fileapi/copy_or_move_file_validator_unittest.cc
+++ b/webkit/browser/fileapi/copy_or_move_file_validator_unittest.cc
@@ -27,7 +27,9 @@ namespace {
const FileSystemType kNoValidatorType = kFileSystemTypeTemporary;
const FileSystemType kWithValidatorType = kFileSystemTypeTest;
-void ExpectOk(base::PlatformFileError error) {
+void ExpectOk(const GURL& origin_url,
+ const std::string& name,
+ base::PlatformFileError error) {
ASSERT_EQ(base::PLATFORM_FILE_OK, error);
}
diff --git a/webkit/browser/fileapi/copy_or_move_operation_delegate_unittest.cc b/webkit/browser/fileapi/copy_or_move_operation_delegate_unittest.cc
index bda8ce0..3eab093 100644
--- a/webkit/browser/fileapi/copy_or_move_operation_delegate_unittest.cc
+++ b/webkit/browser/fileapi/copy_or_move_operation_delegate_unittest.cc
@@ -29,7 +29,9 @@ typedef FileSystemOperation::FileEntryList FileEntryList;
namespace {
-void ExpectOk(base::PlatformFileError error) {
+void ExpectOk(const GURL& origin_url,
+ const std::string& name,
+ base::PlatformFileError error) {
ASSERT_EQ(base::PLATFORM_FILE_OK, error);
}
diff --git a/webkit/browser/fileapi/file_system_backend.h b/webkit/browser/fileapi/file_system_backend.h
index 03f2766..dc9c0c5 100644
--- a/webkit/browser/fileapi/file_system_backend.h
+++ b/webkit/browser/fileapi/file_system_backend.h
@@ -43,7 +43,9 @@ class RemoteFileSystemProxyInterface;
class WEBKIT_STORAGE_BROWSER_EXPORT FileSystemBackend {
public:
// Callback for OpenFileSystem.
- typedef base::Callback<void(base::PlatformFileError error)>
+ typedef base::Callback<void(const GURL& root_url,
+ const std::string& name,
+ base::PlatformFileError error)>
OpenFileSystemCallback;
virtual ~FileSystemBackend() {}
diff --git a/webkit/browser/fileapi/file_system_context.cc b/webkit/browser/fileapi/file_system_context.cc
index a61b8b0..471341c 100644
--- a/webkit/browser/fileapi/file_system_context.cc
+++ b/webkit/browser/fileapi/file_system_context.cc
@@ -27,7 +27,6 @@
#include "webkit/browser/fileapi/sandbox_file_system_backend.h"
#include "webkit/browser/fileapi/syncable/local_file_change_tracker.h"
#include "webkit/browser/fileapi/syncable/local_file_sync_context.h"
-#include "webkit/browser/fileapi/syncable/syncable_file_system_util.h"
#include "webkit/browser/fileapi/test_file_system_backend.h"
#include "webkit/browser/quota/quota_manager.h"
#include "webkit/browser/quota/special_storage_policy.h"
@@ -270,16 +269,8 @@ void FileSystemContext::OpenFileSystem(
return;
}
- GURL root_url;
- if (type == kFileSystemTypeSyncable)
- root_url = sync_file_system::GetSyncableFileSystemRootURI(origin_url);
- else
- root_url = GetFileSystemRootURI(origin_url, type);
- std::string name = GetFileSystemName(origin_url, type);
-
- backend->OpenFileSystem(
- origin_url, type, mode,
- base::Bind(&DidOpenFileSystem, callback, root_url, name));
+ backend->OpenFileSystem(origin_url, type, mode,
+ base::Bind(&DidOpenFileSystem, callback));
}
void FileSystemContext::DeleteFileSystem(
diff --git a/webkit/browser/fileapi/isolated_file_system_backend.cc b/webkit/browser/fileapi/isolated_file_system_backend.cc
index d40fe36..37de6eb 100644
--- a/webkit/browser/fileapi/isolated_file_system_backend.cc
+++ b/webkit/browser/fileapi/isolated_file_system_backend.cc
@@ -64,7 +64,10 @@ void IsolatedFileSystemBackend::OpenFileSystem(
// We never allow opening a new isolated FileSystem via usual OpenFileSystem.
base::MessageLoopProxy::current()->PostTask(
FROM_HERE,
- base::Bind(callback, base::PLATFORM_FILE_ERROR_SECURITY));
+ base::Bind(callback,
+ GetFileSystemRootURI(origin_url, type),
+ GetFileSystemName(origin_url, type),
+ base::PLATFORM_FILE_ERROR_SECURITY));
}
FileSystemFileUtil* IsolatedFileSystemBackend::GetFileUtil(
diff --git a/webkit/browser/fileapi/sandbox_file_system_backend.cc b/webkit/browser/fileapi/sandbox_file_system_backend.cc
index 0c4d628..a3afde7 100644
--- a/webkit/browser/fileapi/sandbox_file_system_backend.cc
+++ b/webkit/browser/fileapi/sandbox_file_system_backend.cc
@@ -28,6 +28,7 @@
#include "webkit/browser/fileapi/sandbox_file_stream_writer.h"
#include "webkit/browser/fileapi/sandbox_quota_observer.h"
#include "webkit/browser/fileapi/syncable/syncable_file_system_operation.h"
+#include "webkit/browser/fileapi/syncable/syncable_file_system_util.h"
#include "webkit/browser/quota/quota_manager.h"
#include "webkit/common/fileapi/file_system_types.h"
#include "webkit/common/fileapi/file_system_util.h"
@@ -98,7 +99,7 @@ class ObfuscatedOriginEnumerator
void DidOpenFileSystem(
base::WeakPtr<SandboxFileSystemBackend> mount_point_provider,
- const FileSystemBackend::OpenFileSystemCallback& callback,
+ const base::Callback<void(base::PlatformFileError error)>& callback,
base::PlatformFileError* error) {
if (mount_point_provider.get())
mount_point_provider.get()->CollectOpenFileSystemMetrics(*error);
@@ -176,14 +177,15 @@ bool SandboxFileSystemBackend::CanHandleType(FileSystemType type) const {
}
void SandboxFileSystemBackend::OpenFileSystem(
- const GURL& origin_url, fileapi::FileSystemType type,
+ const GURL& origin_url,
+ fileapi::FileSystemType type,
OpenFileSystemMode mode,
const OpenFileSystemCallback& callback) {
if (file_system_options_.is_incognito() &&
!(type == kFileSystemTypeTemporary &&
enable_temporary_file_system_in_incognito_)) {
// TODO(kinuko): return an isolated temporary directory.
- callback.Run(base::PLATFORM_FILE_ERROR_SECURITY);
+ callback.Run(GURL(), std::string(), base::PLATFORM_FILE_ERROR_SECURITY);
UMA_HISTOGRAM_ENUMERATION(kOpenFileSystemLabel,
kIncognito,
kFileSystemErrorMax);
@@ -191,13 +193,20 @@ void SandboxFileSystemBackend::OpenFileSystem(
}
if (!IsAllowedScheme(origin_url)) {
- callback.Run(base::PLATFORM_FILE_ERROR_SECURITY);
+ callback.Run(GURL(), std::string(), base::PLATFORM_FILE_ERROR_SECURITY);
UMA_HISTOGRAM_ENUMERATION(kOpenFileSystemLabel,
kInvalidSchemeError,
kFileSystemErrorMax);
return;
}
+ // TODO(nhiroki): Factor out SyncFS related code to SyncFileSystemBackend we
+ // plan to introduce. (http://crbug.com/242422/)
+ GURL root_url = (type == kFileSystemTypeSyncable)
+ ? sync_file_system::GetSyncableFileSystemRootURI(origin_url)
+ : GetFileSystemRootURI(origin_url, type);
+ std::string name = GetFileSystemName(origin_url, type);
+
base::PlatformFileError* error_ptr = new base::PlatformFileError;
sandbox_context_->file_task_runner()->PostTaskAndReply(
FROM_HERE,
@@ -207,7 +216,8 @@ void SandboxFileSystemBackend::OpenFileSystem(
base::Unretained(error_ptr)),
base::Bind(&DidOpenFileSystem,
weak_factory_.GetWeakPtr(),
- callback, base::Owned(error_ptr)));
+ base::Bind(callback, root_url, name),
+ base::Owned(error_ptr)));
if (enable_usage_tracking_)
return;
diff --git a/webkit/browser/fileapi/sandbox_file_system_backend_unittest.cc b/webkit/browser/fileapi/sandbox_file_system_backend_unittest.cc
index 237a583..2794df3 100644
--- a/webkit/browser/fileapi/sandbox_file_system_backend_unittest.cc
+++ b/webkit/browser/fileapi/sandbox_file_system_backend_unittest.cc
@@ -73,6 +73,8 @@ FileSystemURL CreateFileSystemURL(const char* path) {
}
void DidOpenFileSystem(base::PlatformFileError* error_out,
+ const GURL& origin_url,
+ const std::string& name,
base::PlatformFileError error) {
*error_out = error;
}
diff --git a/webkit/browser/fileapi/test_file_system_backend.cc b/webkit/browser/fileapi/test_file_system_backend.cc
index ff7ebff..17e7085 100644
--- a/webkit/browser/fileapi/test_file_system_backend.cc
+++ b/webkit/browser/fileapi/test_file_system_backend.cc
@@ -104,7 +104,9 @@ void TestFileSystemBackend::OpenFileSystem(
FileSystemType type,
OpenFileSystemMode mode,
const OpenFileSystemCallback& callback) {
- callback.Run(base::PLATFORM_FILE_OK);
+ callback.Run(GetFileSystemRootURI(origin_url, type),
+ GetFileSystemName(origin_url, type),
+ base::PLATFORM_FILE_OK);
}
FileSystemFileUtil* TestFileSystemBackend::GetFileUtil(FileSystemType type) {