summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authornhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-13 17:33:21 +0000
committernhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-13 17:33:21 +0000
commite83ae9b5d2bfd9985a7631520631b2d97665c9fa (patch)
tree07b755c519fec0be212811ed0242e15c2f3bd073 /webkit
parentcb563fc32f3cc084d4454f95b6e6ab9281af5ad2 (diff)
downloadchromium_src-e83ae9b5d2bfd9985a7631520631b2d97665c9fa.zip
chromium_src-e83ae9b5d2bfd9985a7631520631b2d97665c9fa.tar.gz
chromium_src-e83ae9b5d2bfd9985a7631520631b2d97665c9fa.tar.bz2
FileAPI: Modify PluginPrivateFileSystemBackend
This modifies PluginPrivateFileSystemBackend to adapt to Pepper side change [*]. - Does not call RegisterFileSystem in the backend side. That will be called from PepperIsolatedFileSystemMessageFilter instead. - Changing callback signature for the OpenPluginPrivateFileSystem since the caller does not need origin_url and filesystem_id. [*] https://codereview.chromium.org/26803004/ BUG=286240 TEST=content_unittests --gtest_filter=PluginPrivateFileSystemBackendTest.* TBR=kinuko@chromium.org Review URL: https://codereview.chromium.org/68513011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234841 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/browser/fileapi/file_system_context.cc7
-rw-r--r--webkit/browser/fileapi/file_system_context.h16
-rw-r--r--webkit/browser/fileapi/plugin_private_file_system_backend.cc25
-rw-r--r--webkit/browser/fileapi/plugin_private_file_system_backend.h8
4 files changed, 19 insertions, 37 deletions
diff --git a/webkit/browser/fileapi/file_system_context.cc b/webkit/browser/fileapi/file_system_context.cc
index fd6ae4d..5bf8977 100644
--- a/webkit/browser/fileapi/file_system_context.cc
+++ b/webkit/browser/fileapi/file_system_context.cc
@@ -348,7 +348,7 @@ void FileSystemContext::ResolveURL(
void FileSystemContext::DeleteFileSystem(
const GURL& origin_url,
FileSystemType type,
- const DeleteFileSystemCallback& callback) {
+ const StatusCallback& callback) {
DCHECK(io_task_runner_->RunsTasksOnCurrentThread());
DCHECK(origin_url == origin_url.GetOrigin());
DCHECK(!callback.is_null());
@@ -439,12 +439,13 @@ bool FileSystemContext::CanServeURLRequest(const FileSystemURL& url) const {
void FileSystemContext::OpenPluginPrivateFileSystem(
const GURL& origin_url,
FileSystemType type,
+ const std::string& filesystem_id,
const std::string& plugin_id,
OpenFileSystemMode mode,
- const OpenPluginPrivateFileSystemCallback& callback) {
+ const StatusCallback& callback) {
DCHECK(plugin_private_backend_);
plugin_private_backend_->OpenPrivateFileSystem(
- origin_url, type, plugin_id, mode, callback);
+ origin_url, type, filesystem_id, plugin_id, mode, callback);
}
FileSystemContext::~FileSystemContext() {
diff --git a/webkit/browser/fileapi/file_system_context.h b/webkit/browser/fileapi/file_system_context.h
index 745bdae..b7a4a94 100644
--- a/webkit/browser/fileapi/file_system_context.h
+++ b/webkit/browser/fileapi/file_system_context.h
@@ -174,15 +174,8 @@ class WEBKIT_STORAGE_BROWSER_EXPORT FileSystemContext
const base::FilePath& file_path,
bool is_directory)> ResolveURLCallback;
- // Used for DeleteFileSystem.
- typedef base::Callback<void(base::PlatformFileError result)>
- DeleteFileSystemCallback;
-
- // Used for OpenPluginPrivateFileSystem.
- typedef base::Callback<void(const GURL& root,
- const std::string& filesystem_id,
- base::PlatformFileError result)>
- OpenPluginPrivateFileSystemCallback;
+ // Used for DeleteFileSystem and OpenPluginPrivateFileSystem.
+ typedef base::Callback<void(base::PlatformFileError result)> StatusCallback;
// Opens the filesystem for the given |origin_url| and |type|, and dispatches
// |callback| on completion.
@@ -207,7 +200,7 @@ class WEBKIT_STORAGE_BROWSER_EXPORT FileSystemContext
void DeleteFileSystem(
const GURL& origin_url,
FileSystemType type,
- const DeleteFileSystemCallback& callback);
+ const StatusCallback& callback);
// Creates new FileStreamReader instance to read a file pointed by the given
// filesystem URL |url| starting from |offset|. |expected_modification_time|
@@ -269,9 +262,10 @@ class WEBKIT_STORAGE_BROWSER_EXPORT FileSystemContext
void OpenPluginPrivateFileSystem(
const GURL& origin_url,
FileSystemType type,
+ const std::string& filesystem_id,
const std::string& plugin_id,
OpenFileSystemMode mode,
- const OpenPluginPrivateFileSystemCallback& callback);
+ const StatusCallback& callback);
private:
typedef std::map<FileSystemType, FileSystemBackend*>
diff --git a/webkit/browser/fileapi/plugin_private_file_system_backend.cc b/webkit/browser/fileapi/plugin_private_file_system_backend.cc
index e701ce9..0426bd2 100644
--- a/webkit/browser/fileapi/plugin_private_file_system_backend.cc
+++ b/webkit/browser/fileapi/plugin_private_file_system_backend.cc
@@ -43,8 +43,8 @@ class PluginPrivateFileSystemBackend::FileSystemIDToPluginMap {
void RegisterFileSystem(const std::string& filesystem_id,
const std::string& plugin_id) {
DCHECK(task_runner_->RunsTasksOnCurrentThread());
- DCHECK(!filesystem_id.empty() &&
- !ContainsKey(map_, filesystem_id)) << filesystem_id;
+ DCHECK(!filesystem_id.empty());
+ DCHECK(!ContainsKey(map_, filesystem_id)) << filesystem_id;
map_[filesystem_id] = plugin_id;
}
@@ -77,9 +77,7 @@ base::PlatformFileError OpenFileSystemOnFileThread(
const bool create = (mode == OPEN_FILE_SYSTEM_CREATE_IF_NONEXISTENT);
file_util->GetDirectoryForOriginAndType(
origin_url, plugin_id, create, &error);
- if (error != base::PLATFORM_FILE_OK)
- IsolatedContext::GetInstance()->RevokeFileSystem(filesystem_id);
- else
+ if (error == base::PLATFORM_FILE_OK)
plugin_map->RegisterFileSystem(filesystem_id, plugin_id);
return error;
}
@@ -119,32 +117,23 @@ PluginPrivateFileSystemBackend::~PluginPrivateFileSystemBackend() {
void PluginPrivateFileSystemBackend::OpenPrivateFileSystem(
const GURL& origin_url,
FileSystemType type,
+ const std::string& filesystem_id,
const std::string& plugin_id,
OpenFileSystemMode mode,
- const OpenPrivateFileSystemCallback& callback) {
+ const StatusCallback& callback) {
if (!CanHandleType(type) || file_system_options_.is_incognito()) {
base::MessageLoopProxy::current()->PostTask(
- FROM_HERE, base::Bind(callback, GURL(), std::string(),
- base::PLATFORM_FILE_ERROR_SECURITY));
+ FROM_HERE, base::Bind(callback, base::PLATFORM_FILE_ERROR_SECURITY));
return;
}
- // TODO(nhiroki,kinuko): This constant should be somehow shared.
- const std::string name("PluginPrivate");
- std::string filesystem_id =
- IsolatedContext::GetInstance()->RegisterFileSystemForVirtualPath(
- type, name, base::FilePath());
-
PostTaskAndReplyWithResult(
file_task_runner_.get(),
FROM_HERE,
base::Bind(&OpenFileSystemOnFileThread,
obfuscated_file_util(), plugin_map_,
origin_url, filesystem_id, plugin_id, mode),
- base::Bind(callback,
- GURL(GetIsolatedFileSystemRootURIString(
- origin_url, filesystem_id, name)),
- filesystem_id));
+ callback);
}
bool PluginPrivateFileSystemBackend::CanHandleType(FileSystemType type) const {
diff --git a/webkit/browser/fileapi/plugin_private_file_system_backend.h b/webkit/browser/fileapi/plugin_private_file_system_backend.h
index 69d61c2..d41f4b7 100644
--- a/webkit/browser/fileapi/plugin_private_file_system_backend.h
+++ b/webkit/browser/fileapi/plugin_private_file_system_backend.h
@@ -31,10 +31,7 @@ class WEBKIT_STORAGE_BROWSER_EXPORT PluginPrivateFileSystemBackend
public FileSystemQuotaUtil {
public:
class FileSystemIDToPluginMap;
- typedef base::Callback<void(const GURL& root,
- const std::string& filesystem_id,
- base::PlatformFileError result)>
- OpenPrivateFileSystemCallback;
+ typedef base::Callback<void(base::PlatformFileError result)> StatusCallback;
PluginPrivateFileSystemBackend(
base::SequencedTaskRunner* file_task_runner,
@@ -52,9 +49,10 @@ class WEBKIT_STORAGE_BROWSER_EXPORT PluginPrivateFileSystemBackend
void OpenPrivateFileSystem(
const GURL& origin_url,
FileSystemType type,
+ const std::string& filesystem_id,
const std::string& plugin_id,
OpenFileSystemMode mode,
- const OpenPrivateFileSystemCallback& callback);
+ const StatusCallback& callback);
// FileSystemBackend overrides.
virtual bool CanHandleType(FileSystemType type) const OVERRIDE;