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

Unified Diff: webkit/fileapi/file_system_operation.cc

Issue 9016020: Cleanup FileSystemOperation for preparing for adding FSO-factory method (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 8 years, 11 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 | « webkit/fileapi/file_system_operation.h ('k') | webkit/fileapi/file_system_operation_interface.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/fileapi/file_system_operation.cc
diff --git a/webkit/fileapi/file_system_operation.cc b/webkit/fileapi/file_system_operation.cc
index e70d9b86959b9467a7807f3d0781fcd8dedac1b9..718928717cb6b0d6de20b6f436778c867a887033 100644
--- a/webkit/fileapi/file_system_operation.cc
+++ b/webkit/fileapi/file_system_operation.cc
@@ -58,11 +58,11 @@ FileSystemOperation::ScopedQuotaUtilHelper::~ScopedQuotaUtilHelper() {
}
FileSystemOperation::FileSystemOperation(
- FileSystemCallbackDispatcher* dispatcher,
+ scoped_ptr<FileSystemCallbackDispatcher> dispatcher,
scoped_refptr<base::MessageLoopProxy> proxy,
FileSystemContext* file_system_context)
: proxy_(proxy),
- dispatcher_(dispatcher),
+ dispatcher_(dispatcher.Pass()),
operation_context_(file_system_context, NULL),
peer_handle_(base::kNullProcessHandle) {
#ifndef NDEBUG
@@ -84,36 +84,6 @@ FileSystemOperation::~FileSystemOperation() {
}
}
-void FileSystemOperation::OpenFileSystem(
- const GURL& origin_url, fileapi::FileSystemType type, bool create) {
-#ifndef NDEBUG
- DCHECK(kOperationNone == pending_operation_);
- pending_operation_ = static_cast<FileSystemOperation::OperationType>(
- kOperationOpenFileSystem);
-#endif
-
- DCHECK(file_system_context());
- operation_context_.set_src_origin_url(origin_url);
- operation_context_.set_src_type(type);
- // TODO(ericu): We don't really need to make this call if !create.
- // Also, in the future we won't need it either way, as long as we do all
- // permission+quota checks beforehand. We only need it now because we have to
- // create an unpredictable directory name. Without that, we could lazily
- // create the root later on the first filesystem write operation, and just
- // return GetFileSystemRootURI() here.
- FileSystemMountPointProvider* mount_point_provider =
- file_system_context()->GetMountPointProvider(type);
- if (!mount_point_provider) {
- DidGetRootPath(false, FilePath(), std::string());
- delete this;
- return;
- }
- mount_point_provider->ValidateFileSystemRootAndGetURL(
- origin_url, type, create,
- base::Bind(&FileSystemOperation::DidGetRootPath,
- base::Owned(this)));
-}
-
void FileSystemOperation::CreateFile(const GURL& path,
bool exclusive) {
#ifndef NDEBUG
@@ -517,27 +487,10 @@ void FileSystemOperation::DelayedOpenFileForQuota(int file_flags,
base::Bind(&FileSystemOperation::DidOpenFile, base::Owned(this)));
}
-void FileSystemOperation::SyncGetPlatformPath(const GURL& path,
- FilePath* platform_path) {
-#ifndef NDEBUG
- DCHECK(kOperationNone == pending_operation_);
- pending_operation_ = kOperationGetLocalPath;
-#endif
- if (!SetupSrcContextForRead(path)) {
- delete this;
- return;
- }
-
- operation_context_.src_file_util()->GetLocalFilePath(
- &operation_context_, src_virtual_path_, platform_path);
-
- delete this;
-}
-
// We can only get here on a write or truncate that's not yet completed.
// We don't support cancelling any other operation at this time.
-void FileSystemOperation::Cancel(FileSystemOperation* cancel_operation_ptr) {
- scoped_ptr<FileSystemOperation> cancel_operation(cancel_operation_ptr);
+void FileSystemOperation::Cancel(
+ scoped_ptr<FileSystemCallbackDispatcher> cancel_dispatcher) {
if (file_writer_delegate_.get()) {
#ifndef NDEBUG
DCHECK(kOperationWrite == pending_operation_);
@@ -553,7 +506,7 @@ void FileSystemOperation::Cancel(FileSystemOperation* cancel_operation_ptr) {
if (dispatcher_.get())
dispatcher_->DidFail(base::PLATFORM_FILE_ERROR_ABORT);
- cancel_operation->dispatcher_->DidSucceed();
+ cancel_dispatcher->DidSucceed();
dispatcher_.reset();
} else {
#ifndef NDEBUG
@@ -561,11 +514,28 @@ void FileSystemOperation::Cancel(FileSystemOperation* cancel_operation_ptr) {
#endif
// We're cancelling a truncate operation, but we can't actually stop it
// since it's been proxied to another thread. We need to save the
- // cancel_operation so that when the truncate returns, it can see that it's
+ // cancel_dispatcher so that when the truncate returns, it can see that it's
// been cancelled, report it, and report that the cancel has succeeded.
- DCHECK(!cancel_operation_.get());
- cancel_operation_.swap(cancel_operation);
+ DCHECK(!cancel_dispatcher_.get());
+ cancel_dispatcher_ = cancel_dispatcher.Pass();
+ }
+}
+
+void FileSystemOperation::SyncGetPlatformPath(const GURL& path,
+ FilePath* platform_path) {
+#ifndef NDEBUG
+ DCHECK(kOperationNone == pending_operation_);
+ pending_operation_ = kOperationGetLocalPath;
+#endif
+ if (!SetupSrcContextForRead(path)) {
+ delete this;
+ return;
}
+
+ operation_context_.src_file_util()->GetLocalFilePath(
+ &operation_context_, src_virtual_path_, platform_path);
+
+ delete this;
}
void FileSystemOperation::GetUsageAndQuotaThenCallback(
@@ -590,28 +560,6 @@ void FileSystemOperation::GetUsageAndQuotaThenCallback(
callback);
}
-void FileSystemOperation::DidGetRootPath(
- bool success,
- const FilePath& path, const std::string& name) {
- if (!dispatcher_.get())
- return;
- DCHECK(success || path.empty());
- GURL result;
- if (!dispatcher_.get())
- return;
- // We ignore the path, and return a URL instead. The point was just to verify
- // that we could create/find the path.
- if (success) {
- result = GetFileSystemRootURI(
- operation_context_.src_origin_url(),
- operation_context_.src_type());
- DCHECK(result.is_valid());
- dispatcher_->DidOpenFileSystem(name, result);
- } else {
- dispatcher_->DidFail(base::PLATFORM_FILE_ERROR_SECURITY);
- }
-}
-
void FileSystemOperation::DidEnsureFileExistsExclusive(
base::PlatformFileError rv, bool created) {
if (rv == base::PLATFORM_FILE_OK && !created) {
@@ -629,14 +577,14 @@ void FileSystemOperation::DidEnsureFileExistsNonExclusive(
void FileSystemOperation::DidFinishFileOperation(
base::PlatformFileError rv) {
- if (cancel_operation_.get()) {
+ if (cancel_dispatcher_.get()) {
#ifndef NDEBUG
DCHECK(kOperationTruncate == pending_operation_);
#endif
if (dispatcher_.get())
dispatcher_->DidFail(base::PLATFORM_FILE_ERROR_ABORT);
- cancel_operation_->dispatcher_->DidSucceed();
+ cancel_dispatcher_->DidSucceed();
} else if (dispatcher_.get()) {
if (rv == base::PLATFORM_FILE_OK)
dispatcher_->DidSucceed();
« no previous file with comments | « webkit/fileapi/file_system_operation.h ('k') | webkit/fileapi/file_system_operation_interface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698