Commit bd69f576 authored by kinuko@chromium.org's avatar kinuko@chromium.org

Remove dependency to file_system_operation_impl.h outside from chrome/

Instead introducing a static FileSystemOperation::Create method.

As a preparation for moving fileapi code from webkit/ to content/.
(file_system_operation.h will be placed under content/public/browser/ while
file_system_operation_impl.{h,cc} will be placed under content/browser/fileapi
and will be hidden from chrome/)

BUG=265770
TEST=existing tests

Review URL: https://chromiumcodereview.appspot.com/23835005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221976 0039d316-1c4b-4281-b951-d872f2087c98
parent 9c43fbd4
...@@ -19,8 +19,8 @@ ...@@ -19,8 +19,8 @@
#include "webkit/browser/fileapi/external_mount_points.h" #include "webkit/browser/fileapi/external_mount_points.h"
#include "webkit/browser/fileapi/file_system_context.h" #include "webkit/browser/fileapi/file_system_context.h"
#include "webkit/browser/fileapi/file_system_file_stream_reader.h" #include "webkit/browser/fileapi/file_system_file_stream_reader.h"
#include "webkit/browser/fileapi/file_system_operation.h"
#include "webkit/browser/fileapi/file_system_operation_context.h" #include "webkit/browser/fileapi/file_system_operation_context.h"
#include "webkit/browser/fileapi/file_system_operation_impl.h"
#include "webkit/browser/fileapi/file_system_url.h" #include "webkit/browser/fileapi/file_system_url.h"
#include "webkit/browser/fileapi/isolated_context.h" #include "webkit/browser/fileapi/isolated_context.h"
#include "webkit/browser/fileapi/isolated_file_util.h" #include "webkit/browser/fileapi/isolated_file_util.h"
...@@ -249,8 +249,8 @@ fileapi::FileSystemOperation* FileSystemBackend::CreateFileSystemOperation( ...@@ -249,8 +249,8 @@ fileapi::FileSystemOperation* FileSystemBackend::CreateFileSystemOperation(
scoped_ptr<fileapi::FileSystemOperationContext> operation_context( scoped_ptr<fileapi::FileSystemOperationContext> operation_context(
new fileapi::FileSystemOperationContext(context)); new fileapi::FileSystemOperationContext(context));
operation_context->set_root_path(GetFileSystemRootPath(url)); operation_context->set_root_path(GetFileSystemRootPath(url));
return new fileapi::FileSystemOperationImpl(url, context, return fileapi::FileSystemOperation::Create(
operation_context.Pass()); url, context, operation_context.Pass());
} }
scoped_ptr<webkit_blob::FileStreamReader> scoped_ptr<webkit_blob::FileStreamReader>
......
...@@ -22,8 +22,8 @@ ...@@ -22,8 +22,8 @@
#include "webkit/browser/fileapi/copy_or_move_file_validator.h" #include "webkit/browser/fileapi/copy_or_move_file_validator.h"
#include "webkit/browser/fileapi/file_system_context.h" #include "webkit/browser/fileapi/file_system_context.h"
#include "webkit/browser/fileapi/file_system_file_stream_reader.h" #include "webkit/browser/fileapi/file_system_file_stream_reader.h"
#include "webkit/browser/fileapi/file_system_operation.h"
#include "webkit/browser/fileapi/file_system_operation_context.h" #include "webkit/browser/fileapi/file_system_operation_context.h"
#include "webkit/browser/fileapi/file_system_operation_impl.h"
#include "webkit/browser/fileapi/isolated_context.h" #include "webkit/browser/fileapi/isolated_context.h"
#include "webkit/browser/fileapi/isolated_file_util.h" #include "webkit/browser/fileapi/isolated_file_util.h"
#include "webkit/browser/fileapi/local_file_stream_writer.h" #include "webkit/browser/fileapi/local_file_stream_writer.h"
...@@ -162,8 +162,8 @@ MediaFileSystemBackend::CreateFileSystemOperation( ...@@ -162,8 +162,8 @@ MediaFileSystemBackend::CreateFileSystemOperation(
scoped_ptr<fileapi::FileSystemOperationContext> operation_context( scoped_ptr<fileapi::FileSystemOperationContext> operation_context(
new fileapi::FileSystemOperationContext( new fileapi::FileSystemOperationContext(
context, media_task_runner_.get())); context, media_task_runner_.get()));
return new fileapi::FileSystemOperationImpl(url, context, return fileapi::FileSystemOperation::Create(
operation_context.Pass()); url, context, operation_context.Pass());
} }
scoped_ptr<webkit_blob::FileStreamReader> scoped_ptr<webkit_blob::FileStreamReader>
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
#include "content/public/browser/notification_service.h" #include "content/public/browser/notification_service.h"
#include "webkit/browser/fileapi/file_system_context.h" #include "webkit/browser/fileapi/file_system_context.h"
#include "webkit/browser/fileapi/file_system_file_stream_reader.h" #include "webkit/browser/fileapi/file_system_file_stream_reader.h"
#include "webkit/browser/fileapi/file_system_operation_impl.h" #include "webkit/browser/fileapi/file_system_operation.h"
#include "webkit/browser/fileapi/sandbox_file_stream_writer.h" #include "webkit/browser/fileapi/sandbox_file_stream_writer.h"
#include "webkit/browser/fileapi/sandbox_quota_observer.h" #include "webkit/browser/fileapi/sandbox_quota_observer.h"
#include "webkit/common/fileapi/file_system_util.h" #include "webkit/common/fileapi/file_system_util.h"
...@@ -160,7 +160,7 @@ SyncFileSystemBackend::CreateFileSystemOperation( ...@@ -160,7 +160,7 @@ SyncFileSystemBackend::CreateFileSystemOperation(
return NULL; return NULL;
if (url.type() == fileapi::kFileSystemTypeSyncableForInternalSync) { if (url.type() == fileapi::kFileSystemTypeSyncableForInternalSync) {
return new fileapi::FileSystemOperationImpl( return fileapi::FileSystemOperation::Create(
url, context, operation_context.Pass()); url, context, operation_context.Pass());
} }
......
...@@ -333,8 +333,7 @@ TEST_F(SyncableFileOperationRunnerTest, QueueAndCancel) { ...@@ -333,8 +333,7 @@ TEST_F(SyncableFileOperationRunnerTest, QueueAndCancel) {
EXPECT_EQ(2, callback_count_); EXPECT_EQ(2, callback_count_);
} }
// Test if CopyInForeignFile runs cooperatively with other Sync operations // Test if CopyInForeignFile runs cooperatively with other Sync operations.
// when it is called directly via AsFileSystemOperationImpl.
TEST_F(SyncableFileOperationRunnerTest, CopyInForeignFile) { TEST_F(SyncableFileOperationRunnerTest, CopyInForeignFile) {
const std::string kTestData("test data"); const std::string kTestData("test data");
......
...@@ -11,9 +11,10 @@ ...@@ -11,9 +11,10 @@
#include "chrome/browser/sync_file_system/syncable_file_system_util.h" #include "chrome/browser/sync_file_system/syncable_file_system_util.h"
#include "net/url_request/url_request.h" #include "net/url_request/url_request.h"
#include "webkit/browser/fileapi/file_system_context.h" #include "webkit/browser/fileapi/file_system_context.h"
#include "webkit/browser/fileapi/file_system_operation.h"
#include "webkit/browser/fileapi/file_system_operation_context.h" #include "webkit/browser/fileapi/file_system_operation_context.h"
#include "webkit/browser/fileapi/file_system_operation_impl.h"
#include "webkit/browser/fileapi/file_system_url.h" #include "webkit/browser/fileapi/file_system_url.h"
#include "webkit/browser/fileapi/file_writer_delegate.h"
#include "webkit/browser/fileapi/sandbox_file_system_backend.h" #include "webkit/browser/fileapi/sandbox_file_system_backend.h"
#include "webkit/common/blob/shareable_file_reference.h" #include "webkit/common/blob/shareable_file_reference.h"
...@@ -362,8 +363,8 @@ SyncableFileSystemOperation::SyncableFileSystemOperation( ...@@ -362,8 +363,8 @@ SyncableFileSystemOperation::SyncableFileSystemOperation(
// Returning here to leave operation_runner_ as NULL. // Returning here to leave operation_runner_ as NULL.
return; return;
} }
impl_.reset(new fileapi::FileSystemOperationImpl(url_, file_system_context, impl_.reset(fileapi::FileSystemOperation::Create(
operation_context.Pass())); url_, file_system_context, operation_context.Pass()));
operation_runner_ = backend->sync_context()->operation_runner(); operation_runner_ = backend->sync_context()->operation_runner();
is_directory_operation_enabled_ = IsSyncFSDirectoryOperationEnabled(); is_directory_operation_enabled_ = IsSyncFSDirectoryOperationEnabled();
} }
......
...@@ -11,6 +11,8 @@ ...@@ -11,6 +11,8 @@
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/platform_file.h" #include "base/platform_file.h"
#include "base/process/process.h" #include "base/process/process.h"
#include "webkit/browser/fileapi/file_system_operation_context.h"
#include "webkit/browser/webkit_storage_browser_export.h"
#include "webkit/common/fileapi/directory_entry.h" #include "webkit/common/fileapi/directory_entry.h"
namespace base { namespace base {
...@@ -29,9 +31,9 @@ class GURL; ...@@ -29,9 +31,9 @@ class GURL;
namespace fileapi { namespace fileapi {
class FileSystemContext;
class FileSystemURL; class FileSystemURL;
class FileWriterDelegate; class FileWriterDelegate;
class FileSystemOperationImpl;
// The interface class for FileSystemOperation implementations. // The interface class for FileSystemOperation implementations.
// //
...@@ -56,6 +58,11 @@ class FileSystemOperationImpl; ...@@ -56,6 +58,11 @@ class FileSystemOperationImpl;
// it gets called. // it gets called.
class FileSystemOperation { class FileSystemOperation {
public: public:
WEBKIT_STORAGE_BROWSER_EXPORT static FileSystemOperation* Create(
const FileSystemURL& url,
FileSystemContext* file_system_context,
scoped_ptr<FileSystemOperationContext> operation_context);
virtual ~FileSystemOperation() {} virtual ~FileSystemOperation() {}
// Used for CreateFile(), etc. |result| is the return code of the operation. // Used for CreateFile(), etc. |result| is the return code of the operation.
......
...@@ -31,20 +31,12 @@ using webkit_blob::ScopedFile; ...@@ -31,20 +31,12 @@ using webkit_blob::ScopedFile;
namespace fileapi { namespace fileapi {
FileSystemOperationImpl::FileSystemOperationImpl( FileSystemOperation* FileSystemOperation::Create(
const FileSystemURL& url, const FileSystemURL& url,
FileSystemContext* file_system_context, FileSystemContext* file_system_context,
scoped_ptr<FileSystemOperationContext> operation_context) scoped_ptr<FileSystemOperationContext> operation_context) {
: file_system_context_(file_system_context), return new FileSystemOperationImpl(url, file_system_context,
operation_context_(operation_context.Pass()), operation_context.Pass());
async_file_util_(NULL),
peer_handle_(base::kNullProcessHandle),
pending_operation_(kOperationNone),
weak_factory_(this) {
DCHECK(operation_context_.get());
operation_context_->DetachUserDataThread();
async_file_util_ = file_system_context_->GetAsyncFileUtil(url.type());
DCHECK(async_file_util_);
} }
FileSystemOperationImpl::~FileSystemOperationImpl() { FileSystemOperationImpl::~FileSystemOperationImpl() {
...@@ -318,6 +310,22 @@ base::PlatformFileError FileSystemOperationImpl::SyncGetPlatformPath( ...@@ -318,6 +310,22 @@ base::PlatformFileError FileSystemOperationImpl::SyncGetPlatformPath(
return base::PLATFORM_FILE_OK; return base::PLATFORM_FILE_OK;
} }
FileSystemOperationImpl::FileSystemOperationImpl(
const FileSystemURL& url,
FileSystemContext* file_system_context,
scoped_ptr<FileSystemOperationContext> operation_context)
: file_system_context_(file_system_context),
operation_context_(operation_context.Pass()),
async_file_util_(NULL),
peer_handle_(base::kNullProcessHandle),
pending_operation_(kOperationNone),
weak_factory_(this) {
DCHECK(operation_context_.get());
operation_context_->DetachUserDataThread();
async_file_util_ = file_system_context_->GetAsyncFileUtil(url.type());
DCHECK(async_file_util_);
}
void FileSystemOperationImpl::GetUsageAndQuotaThenRunTask( void FileSystemOperationImpl::GetUsageAndQuotaThenRunTask(
const FileSystemURL& url, const FileSystemURL& url,
const base::Closure& task, const base::Closure& task,
......
...@@ -28,15 +28,6 @@ class RecursiveOperationDelegate; ...@@ -28,15 +28,6 @@ class RecursiveOperationDelegate;
class WEBKIT_STORAGE_BROWSER_EXPORT FileSystemOperationImpl class WEBKIT_STORAGE_BROWSER_EXPORT FileSystemOperationImpl
: public NON_EXPORTED_BASE(FileSystemOperation) { : public NON_EXPORTED_BASE(FileSystemOperation) {
public: public:
// NOTE: This constructor should not be called outside FileSystemBackends;
// instead please consider using
// file_system_context->CreateFileSystemOperation() to instantiate
// an appropriate FileSystemOperation.
FileSystemOperationImpl(
const FileSystemURL& url,
FileSystemContext* file_system_context,
scoped_ptr<FileSystemOperationContext> operation_context);
virtual ~FileSystemOperationImpl(); virtual ~FileSystemOperationImpl();
// FileSystemOperation overrides. // FileSystemOperation overrides.
...@@ -103,6 +94,13 @@ class WEBKIT_STORAGE_BROWSER_EXPORT FileSystemOperationImpl ...@@ -103,6 +94,13 @@ class WEBKIT_STORAGE_BROWSER_EXPORT FileSystemOperationImpl
} }
private: private:
friend class FileSystemOperation;
FileSystemOperationImpl(
const FileSystemURL& url,
FileSystemContext* file_system_context,
scoped_ptr<FileSystemOperationContext> operation_context);
// Queries the quota and usage and then runs the given |task|. // Queries the quota and usage and then runs the given |task|.
// If an error occurs during the quota query it runs |error_callback| instead. // If an error occurs during the quota query it runs |error_callback| instead.
void GetUsageAndQuotaThenRunTask( void GetUsageAndQuotaThenRunTask(
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#include "webkit/browser/fileapi/file_observers.h" #include "webkit/browser/fileapi/file_observers.h"
#include "webkit/browser/fileapi/file_stream_writer.h" #include "webkit/browser/fileapi/file_stream_writer.h"
#include "webkit/browser/fileapi/file_system_context.h" #include "webkit/browser/fileapi/file_system_context.h"
#include "webkit/browser/fileapi/file_system_operation_impl.h" #include "webkit/browser/fileapi/file_system_operation.h"
#include "webkit/browser/fileapi/file_writer_delegate.h" #include "webkit/browser/fileapi/file_writer_delegate.h"
#include "webkit/common/blob/shareable_file_reference.h" #include "webkit/common/blob/shareable_file_reference.h"
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
#include "webkit/browser/fileapi/copy_or_move_file_validator.h" #include "webkit/browser/fileapi/copy_or_move_file_validator.h"
#include "webkit/browser/fileapi/file_system_context.h" #include "webkit/browser/fileapi/file_system_context.h"
#include "webkit/browser/fileapi/file_system_file_stream_reader.h" #include "webkit/browser/fileapi/file_system_file_stream_reader.h"
#include "webkit/browser/fileapi/file_system_operation.h"
#include "webkit/browser/fileapi/file_system_operation_context.h" #include "webkit/browser/fileapi/file_system_operation_context.h"
#include "webkit/browser/fileapi/file_system_operation_impl.h"
#include "webkit/browser/fileapi/isolated_context.h" #include "webkit/browser/fileapi/isolated_context.h"
#include "webkit/browser/fileapi/isolated_file_util.h" #include "webkit/browser/fileapi/isolated_file_util.h"
#include "webkit/browser/fileapi/local_file_stream_writer.h" #include "webkit/browser/fileapi/local_file_stream_writer.h"
...@@ -99,7 +99,7 @@ FileSystemOperation* IsolatedFileSystemBackend::CreateFileSystemOperation( ...@@ -99,7 +99,7 @@ FileSystemOperation* IsolatedFileSystemBackend::CreateFileSystemOperation(
const FileSystemURL& url, const FileSystemURL& url,
FileSystemContext* context, FileSystemContext* context,
base::PlatformFileError* error_code) const { base::PlatformFileError* error_code) const {
return new FileSystemOperationImpl( return FileSystemOperation::Create(
url, context, make_scoped_ptr(new FileSystemOperationContext(context))); url, context, make_scoped_ptr(new FileSystemOperationContext(context)));
} }
......
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
#include "webkit/browser/fileapi/copy_or_move_file_validator.h" #include "webkit/browser/fileapi/copy_or_move_file_validator.h"
#include "webkit/browser/fileapi/file_system_context.h" #include "webkit/browser/fileapi/file_system_context.h"
#include "webkit/browser/fileapi/file_system_file_stream_reader.h" #include "webkit/browser/fileapi/file_system_file_stream_reader.h"
#include "webkit/browser/fileapi/file_system_operation.h"
#include "webkit/browser/fileapi/file_system_operation_context.h" #include "webkit/browser/fileapi/file_system_operation_context.h"
#include "webkit/browser/fileapi/file_system_operation_impl.h"
#include "webkit/browser/fileapi/file_system_options.h" #include "webkit/browser/fileapi/file_system_options.h"
#include "webkit/browser/fileapi/file_system_usage_cache.h" #include "webkit/browser/fileapi/file_system_usage_cache.h"
#include "webkit/browser/fileapi/obfuscated_file_util.h" #include "webkit/browser/fileapi/obfuscated_file_util.h"
...@@ -120,7 +120,7 @@ FileSystemOperation* SandboxFileSystemBackend::CreateFileSystemOperation( ...@@ -120,7 +120,7 @@ FileSystemOperation* SandboxFileSystemBackend::CreateFileSystemOperation(
else else
operation_context->set_quota_limit_type(quota::kQuotaLimitTypeLimited); operation_context->set_quota_limit_type(quota::kQuotaLimitTypeLimited);
return new FileSystemOperationImpl(url, context, operation_context.Pass()); return FileSystemOperation::Create(url, context, operation_context.Pass());
} }
scoped_ptr<webkit_blob::FileStreamReader> scoped_ptr<webkit_blob::FileStreamReader>
......
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
#include "webkit/browser/fileapi/copy_or_move_file_validator.h" #include "webkit/browser/fileapi/copy_or_move_file_validator.h"
#include "webkit/browser/fileapi/file_observers.h" #include "webkit/browser/fileapi/file_observers.h"
#include "webkit/browser/fileapi/file_system_file_stream_reader.h" #include "webkit/browser/fileapi/file_system_file_stream_reader.h"
#include "webkit/browser/fileapi/file_system_operation.h"
#include "webkit/browser/fileapi/file_system_operation_context.h" #include "webkit/browser/fileapi/file_system_operation_context.h"
#include "webkit/browser/fileapi/file_system_operation_impl.h"
#include "webkit/browser/fileapi/file_system_quota_util.h" #include "webkit/browser/fileapi/file_system_quota_util.h"
#include "webkit/browser/fileapi/local_file_util.h" #include "webkit/browser/fileapi/local_file_util.h"
#include "webkit/browser/fileapi/native_file_util.h" #include "webkit/browser/fileapi/native_file_util.h"
...@@ -183,7 +183,7 @@ FileSystemOperation* TestFileSystemBackend::CreateFileSystemOperation( ...@@ -183,7 +183,7 @@ FileSystemOperation* TestFileSystemBackend::CreateFileSystemOperation(
operation_context->set_change_observers( operation_context->set_change_observers(
*quota_util_->GetChangeObservers(url.type())); *quota_util_->GetChangeObservers(url.type()));
operation_context->set_root_path(base_path_); operation_context->set_root_path(base_path_);
return new FileSystemOperationImpl(url, context, operation_context.Pass()); return FileSystemOperation::Create(url, context, operation_context.Pass());
} }
scoped_ptr<webkit_blob::FileStreamReader> scoped_ptr<webkit_blob::FileStreamReader>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment