diff options
author | dmikurube@chromium.org <dmikurube@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-27 06:06:43 +0000 |
---|---|---|
committer | dmikurube@chromium.org <dmikurube@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-27 06:06:43 +0000 |
commit | b0e2a4f2793a60b8979b738758f63a4df7539665 (patch) | |
tree | f917b27caf5fba78f0bf1ec721ad3c3bc5fa2fd4 /webkit/fileapi | |
parent | 7e494c6d13267fe91a649c81ca858a58c449d6c4 (diff) | |
download | chromium_src-b0e2a4f2793a60b8979b738758f63a4df7539665.zip chromium_src-b0e2a4f2793a60b8979b738758f63a4df7539665.tar.gz chromium_src-b0e2a4f2793a60b8979b738758f63a4df7539665.tar.bz2 |
Refactoring: Change all -FileUtils non-Singleton and to own underlying FileUtils.
Based on the discussion at http://codereview.chromium.org/7174002/diff/26001/webkit/fileapi/local_file_system_file_util.h#newcode38, this change
* also reduces dependency between FileUtils,
* enables more flexible stacking of -FileUtils, such as QuotaFileUtil over other -FileUtils, and
* makes -FileUtils symmetry so owner handling for these objects gets unified.
BUG=none
TEST=FileSystemFileUtilTest.*,FileSystemOperationTest.*,FileSystemOperationWriteTest.*,FileSystemQuotaTest.*,FileWriterDelegateTest.*,LocalFileSystemFileUtilTest.*,ObfuscatedFileSystemFileUtil.*,QuotaFileUtil.*,SandboxMountPointProviderTest.*
Review URL: http://codereview.chromium.org/7312023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94251 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/fileapi')
-rw-r--r-- | webkit/fileapi/file_system_file_util.cc | 6 | ||||
-rw-r--r-- | webkit/fileapi/file_system_file_util.h | 8 | ||||
-rw-r--r-- | webkit/fileapi/file_system_file_util_unittest.cc | 2 | ||||
-rw-r--r-- | webkit/fileapi/file_system_operation_unittest.cc | 2 | ||||
-rw-r--r-- | webkit/fileapi/file_system_operation_write_unittest.cc | 2 | ||||
-rw-r--r-- | webkit/fileapi/file_system_quota_client_unittest.cc | 2 | ||||
-rw-r--r-- | webkit/fileapi/file_system_quota_unittest.cc | 2 | ||||
-rw-r--r-- | webkit/fileapi/file_writer_delegate_unittest.cc | 7 | ||||
-rw-r--r-- | webkit/fileapi/local_file_system_file_util.cc | 3 | ||||
-rw-r--r-- | webkit/fileapi/local_file_system_file_util.h | 10 | ||||
-rw-r--r-- | webkit/fileapi/local_file_system_file_util_unittest.cc | 2 | ||||
-rw-r--r-- | webkit/fileapi/obfuscated_file_system_file_util.h | 8 | ||||
-rw-r--r-- | webkit/fileapi/obfuscated_file_system_file_util_unittest.cc | 2 | ||||
-rw-r--r-- | webkit/fileapi/quota_file_util.cc | 37 | ||||
-rw-r--r-- | webkit/fileapi/quota_file_util.h | 27 | ||||
-rw-r--r-- | webkit/fileapi/quota_file_util_unittest.cc | 126 | ||||
-rw-r--r-- | webkit/fileapi/sandbox_mount_point_provider.cc | 2 |
17 files changed, 133 insertions, 115 deletions
diff --git a/webkit/fileapi/file_system_file_util.cc b/webkit/fileapi/file_system_file_util.cc index 7765962..afb6453 100644 --- a/webkit/fileapi/file_system_file_util.cc +++ b/webkit/fileapi/file_system_file_util.cc @@ -8,7 +8,6 @@ #include <vector> #include "base/file_util_proxy.h" -#include "base/logging.h" #include "base/memory/scoped_ptr.h" #include "webkit/fileapi/file_system_operation_context.h" @@ -29,11 +28,6 @@ bool ParentExists(FileSystemOperationContext* context, } // namespace -// static -FileSystemFileUtil* FileSystemFileUtil::GetInstance() { - return Singleton<FileSystemFileUtil>::get(); -} - PlatformFileError FileSystemFileUtil::CreateOrOpen( FileSystemOperationContext* unused, const FilePath& file_path, int file_flags, diff --git a/webkit/fileapi/file_system_file_util.h b/webkit/fileapi/file_system_file_util.h index b0e23cf..8a46fbd 100644 --- a/webkit/fileapi/file_system_file_util.h +++ b/webkit/fileapi/file_system_file_util.h @@ -10,7 +10,6 @@ #include "base/file_util.h" #include "base/file_util_proxy.h" #include "base/memory/ref_counted.h" -#include "base/memory/singleton.h" #include "base/platform_file.h" #include "base/tracked_objects.h" #include "webkit/fileapi/file_system_types.h" @@ -47,7 +46,8 @@ class FileSystemOperationContext; // PerformCommonCheckAndPreparationForMoveAndCopy and CopyOrMoveDirectory. class FileSystemFileUtil { public: - static FileSystemFileUtil* GetInstance(); + FileSystemFileUtil() {} + virtual ~FileSystemFileUtil() {} // Creates or opens a file with the given flags. It is invalid to pass NULL // for the callback. @@ -239,9 +239,6 @@ class FileSystemFileUtil { const FilePath& root_path); protected: - FileSystemFileUtil() { } - virtual ~FileSystemFileUtil() { } - // Deletes a directory and all entries under the directory. // // This method is called from Delete. It internally calls two following @@ -281,7 +278,6 @@ class FileSystemFileUtil { const FilePath& dest_file_path, bool copy); - friend struct DefaultSingletonTraits<FileSystemFileUtil>; DISALLOW_COPY_AND_ASSIGN(FileSystemFileUtil); }; diff --git a/webkit/fileapi/file_system_file_util_unittest.cc b/webkit/fileapi/file_system_file_util_unittest.cc index 9becaaa..afa742b 100644 --- a/webkit/fileapi/file_system_file_util_unittest.cc +++ b/webkit/fileapi/file_system_file_util_unittest.cc @@ -75,7 +75,7 @@ class FileSystemFileUtilTest : public testing::Test { ASSERT_TRUE(base_dir.CreateUniqueTempDir()); scoped_refptr<ObfuscatedFileSystemFileUtil> file_util( new ObfuscatedFileSystemFileUtil(base_dir.path(), - FileSystemFileUtil::GetInstance())); + new FileSystemFileUtil())); FileSystemTestOriginHelper src_helper(src_origin, src_type); src_helper.SetUp(base_dir.path(), false, // incognito diff --git a/webkit/fileapi/file_system_operation_unittest.cc b/webkit/fileapi/file_system_operation_unittest.cc index e1ece0ec..6c609c5 100644 --- a/webkit/fileapi/file_system_operation_unittest.cc +++ b/webkit/fileapi/file_system_operation_unittest.cc @@ -156,7 +156,7 @@ class FileSystemOperationTest : public testing::Test { FileSystemOperationTest() : status_(kFileOperationStatusNotSet), local_file_util_( - new LocalFileSystemFileUtil(QuotaFileUtil::GetInstance())) { + new LocalFileSystemFileUtil(QuotaFileUtil::CreateDefault())) { EXPECT_TRUE(base_.CreateUniqueTempDir()); } diff --git a/webkit/fileapi/file_system_operation_write_unittest.cc b/webkit/fileapi/file_system_operation_write_unittest.cc index 769ea2d..22c26c8 100644 --- a/webkit/fileapi/file_system_operation_write_unittest.cc +++ b/webkit/fileapi/file_system_operation_write_unittest.cc @@ -68,7 +68,7 @@ class FileSystemOperationWriteTest : public testing::Test { public: FileSystemOperationWriteTest() : local_file_util_( - new LocalFileSystemFileUtil(QuotaFileUtil::GetInstance())), + new LocalFileSystemFileUtil(QuotaFileUtil::CreateDefault())), loop_(MessageLoop::TYPE_IO), status_(base::PLATFORM_FILE_OK), bytes_written_(0), diff --git a/webkit/fileapi/file_system_quota_client_unittest.cc b/webkit/fileapi/file_system_quota_client_unittest.cc index d54978a..654419d 100644 --- a/webkit/fileapi/file_system_quota_client_unittest.cc +++ b/webkit/fileapi/file_system_quota_client_unittest.cc @@ -217,7 +217,7 @@ class FileSystemQuotaClientTest : public testing::Test { if (!path.empty()) { // TODO(dmikurube): Use QuotaFileUtil in the actual -FileUtil stack. file_paths_cost += - QuotaFileUtil::GetInstance()->ComputeFilePathCost(path); + QuotaFileUtil::CreateDefault()->ComputeFilePathCost(path); } } } diff --git a/webkit/fileapi/file_system_quota_unittest.cc b/webkit/fileapi/file_system_quota_unittest.cc index bfc5603..e0bd554 100644 --- a/webkit/fileapi/file_system_quota_unittest.cc +++ b/webkit/fileapi/file_system_quota_unittest.cc @@ -33,7 +33,7 @@ const int kFileOperationStatusNotSet = 1; class FileSystemQuotaTest : public testing::Test { public: FileSystemQuotaTest() - : quota_file_util_(QuotaFileUtil::GetInstance()), + : quota_file_util_(QuotaFileUtil::CreateDefault()), local_file_util_(new LocalFileSystemFileUtil(quota_file_util_)), callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)), file_path_cost_(0), diff --git a/webkit/fileapi/file_writer_delegate_unittest.cc b/webkit/fileapi/file_writer_delegate_unittest.cc index 4281bee..5af69c1 100644 --- a/webkit/fileapi/file_writer_delegate_unittest.cc +++ b/webkit/fileapi/file_writer_delegate_unittest.cc @@ -82,7 +82,8 @@ class FileWriterDelegateTest : public PlatformTest { virtual void TearDown(); virtual void SetUpTestHelper(const FilePath& base_dir) { - test_helper_.SetUp(base_dir, QuotaFileUtil::GetInstance()); + quota_file_util_.reset(QuotaFileUtil::CreateDefault()); + test_helper_.SetUp(base_dir, quota_file_util_.get()); } int64 ComputeCurrentOriginUsage() { @@ -115,6 +116,7 @@ class FileWriterDelegateTest : public PlatformTest { static net::URLRequest::ProtocolFactory Factory; + scoped_ptr<QuotaFileUtil> quota_file_util_; scoped_ptr<FileWriterDelegate> file_writer_delegate_; scoped_ptr<net::URLRequest> request_; scoped_ptr<Result> result_; @@ -480,12 +482,13 @@ class FileWriterDelegateUnlimitedTest : public FileWriterDelegateTest { }; void FileWriterDelegateUnlimitedTest::SetUpTestHelper(const FilePath& path) { + quota_file_util_.reset(QuotaFileUtil::CreateDefault()); test_helper_.SetUp( path, false /* incognito */, true /* unlimited */, NULL /* quota manager proxy */, - QuotaFileUtil::GetInstance()); + quota_file_util_.get()); } TEST_F(FileWriterDelegateUnlimitedTest, WriteWithQuota) { diff --git a/webkit/fileapi/local_file_system_file_util.cc b/webkit/fileapi/local_file_system_file_util.cc index 535d008..5d14644 100644 --- a/webkit/fileapi/local_file_system_file_util.cc +++ b/webkit/fileapi/local_file_system_file_util.cc @@ -19,6 +19,9 @@ LocalFileSystemFileUtil::LocalFileSystemFileUtil( : underlying_file_util_(underlying_file_util) { } +LocalFileSystemFileUtil::~LocalFileSystemFileUtil() { +} + PlatformFileError LocalFileSystemFileUtil::CreateOrOpen( FileSystemOperationContext* context, const FilePath& file_path, int file_flags, diff --git a/webkit/fileapi/local_file_system_file_util.h b/webkit/fileapi/local_file_system_file_util.h index 6d9ef74..314895e 100644 --- a/webkit/fileapi/local_file_system_file_util.h +++ b/webkit/fileapi/local_file_system_file_util.h @@ -12,6 +12,7 @@ #include "base/file_util.h" #include "base/file_util_proxy.h" #include "base/logging.h" +#include "base/memory/scoped_ptr.h" #include "base/platform_file.h" #include "webkit/fileapi/file_system_file_util.h" #include "webkit/fileapi/file_system_types.h" @@ -34,9 +35,12 @@ class FileSystemOperationContext; // An instance of this class is created and owned by *MountPointProvider. class LocalFileSystemFileUtil : public FileSystemFileUtil { public: - // |underlying_file_util| is not owned by the instance. It will need to be - // a singleton or to be deleted by someone else. + // |underlying_file_util| is owned by the instance. It will be deleted by + // the owner instance. For example, it can be instanciated as follows: + // FileSystemFileUtil* file_system_file_util = + // new LocalFileSystemFileUtil(new FileSystemFileUtil()); explicit LocalFileSystemFileUtil(FileSystemFileUtil* underlying_file_util); + virtual ~LocalFileSystemFileUtil(); virtual PlatformFileError CreateOrOpen( FileSystemOperationContext* context, @@ -126,7 +130,7 @@ class LocalFileSystemFileUtil : public FileSystemFileUtil { FileSystemType type, const FilePath& virtual_path); - FileSystemFileUtil* underlying_file_util_; + scoped_ptr<FileSystemFileUtil> underlying_file_util_; DISALLOW_COPY_AND_ASSIGN(LocalFileSystemFileUtil); }; diff --git a/webkit/fileapi/local_file_system_file_util_unittest.cc b/webkit/fileapi/local_file_system_file_util_unittest.cc index 1e8109d..5f3906e 100644 --- a/webkit/fileapi/local_file_system_file_util_unittest.cc +++ b/webkit/fileapi/local_file_system_file_util_unittest.cc @@ -27,7 +27,7 @@ class LocalFileSystemFileUtilTest : public testing::Test { public: LocalFileSystemFileUtilTest() : local_file_util_( - new LocalFileSystemFileUtil(FileSystemFileUtil::GetInstance())), + new LocalFileSystemFileUtil(new FileSystemFileUtil())), callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { } diff --git a/webkit/fileapi/obfuscated_file_system_file_util.h b/webkit/fileapi/obfuscated_file_system_file_util.h index 966a4c3..063fcd5 100644 --- a/webkit/fileapi/obfuscated_file_system_file_util.h +++ b/webkit/fileapi/obfuscated_file_system_file_util.h @@ -47,8 +47,10 @@ class FileSystemOperationContext; class ObfuscatedFileSystemFileUtil : public FileSystemFileUtil, public base::RefCountedThreadSafe<ObfuscatedFileSystemFileUtil> { public: - // |underlying_file_util| is not owned by the instance. It will need to be - // a singleton or to be deleted by someone else. + // |underlying_file_util| is owned by the instance. It will be deleted by + // the owner instance. For example, it can be instanciated as follows: + // FileSystemFileUtil* file_system_file_util = + // new ObfuscatedFileSystemFileUtil(new FileSystemFileUtil()); ObfuscatedFileSystemFileUtil( const FilePath& file_system_directory, FileSystemFileUtil* underlying_file_util); @@ -244,7 +246,7 @@ class ObfuscatedFileSystemFileUtil : public FileSystemFileUtil, scoped_ptr<FileSystemOriginDatabase> origin_database_; FilePath file_system_directory_; base::OneShotTimer<ObfuscatedFileSystemFileUtil> timer_; - FileSystemFileUtil* underlying_file_util_; + scoped_ptr<FileSystemFileUtil> underlying_file_util_; DISALLOW_COPY_AND_ASSIGN(ObfuscatedFileSystemFileUtil); }; diff --git a/webkit/fileapi/obfuscated_file_system_file_util_unittest.cc b/webkit/fileapi/obfuscated_file_system_file_util_unittest.cc index f865393..6e61b9a 100644 --- a/webkit/fileapi/obfuscated_file_system_file_util_unittest.cc +++ b/webkit/fileapi/obfuscated_file_system_file_util_unittest.cc @@ -134,7 +134,7 @@ class ObfuscatedFileSystemFileUtilTest : public testing::Test { obfuscated_file_system_file_util_ = new ObfuscatedFileSystemFileUtil(data_dir_.path(), - FileSystemFileUtil::GetInstance()); + new FileSystemFileUtil()); test_helper_.SetUp(data_dir_.path(), false, // incognito false, // unlimited quota diff --git a/webkit/fileapi/quota_file_util.cc b/webkit/fileapi/quota_file_util.cc index 83daf74..56fbcb7 100644 --- a/webkit/fileapi/quota_file_util.cc +++ b/webkit/fileapi/quota_file_util.cc @@ -70,9 +70,16 @@ class ScopedOriginUpdateHelper { } // namespace (anonymous) +QuotaFileUtil::QuotaFileUtil(FileSystemFileUtil* underlying_file_util) + : underlying_file_util_(underlying_file_util) { +} + +QuotaFileUtil::~QuotaFileUtil() { +} + // static -QuotaFileUtil* QuotaFileUtil::GetInstance() { - return Singleton<QuotaFileUtil>::get(); +QuotaFileUtil* QuotaFileUtil::CreateDefault() { + return new QuotaFileUtil(new FileSystemFileUtil()); } int64 QuotaFileUtil::ComputeFilePathCost(const FilePath& file_path) const { @@ -103,8 +110,8 @@ PlatformFileError QuotaFileUtil::CreateOrOpen( return base::PLATFORM_FILE_ERROR_NO_SPACE; } - base::PlatformFileError error = FileSystemFileUtil::GetInstance()-> - CreateOrOpen(fs_context, file_path, file_flags, file_handle, created); + base::PlatformFileError error = underlying_file_util_->CreateOrOpen( + fs_context, file_path, file_flags, file_handle, created); if (growth > 0) { if (error == base::PLATFORM_FILE_OK) @@ -137,8 +144,8 @@ PlatformFileError QuotaFileUtil::EnsureFileExists( return base::PLATFORM_FILE_ERROR_NO_SPACE; } - base::PlatformFileError error = FileSystemFileUtil::GetInstance()-> - EnsureFileExists(fs_context, file_path, created); + base::PlatformFileError error = underlying_file_util_->EnsureFileExists( + fs_context, file_path, created); if (growth > 0 &&error == base::PLATFORM_FILE_OK) helper->NotifyUpdate(growth); @@ -184,8 +191,8 @@ PlatformFileError QuotaFileUtil::CreateDirectory( } base::PlatformFileError error = base::PLATFORM_FILE_OK; - error = FileSystemFileUtil::GetInstance()-> - CreateDirectory(fs_context, file_path, exclusive, recursive); + error = underlying_file_util_->CreateDirectory( + fs_context, file_path, exclusive, recursive); if (growth > 0 && error == base::PLATFORM_FILE_OK) helper->NotifyUpdate(growth); @@ -231,8 +238,8 @@ base::PlatformFileError QuotaFileUtil::CopyOrMoveFile( return base::PLATFORM_FILE_ERROR_NO_SPACE; } - base::PlatformFileError error = FileSystemFileUtil::GetInstance()-> - CopyOrMoveFile(fs_context, src_file_path, dest_file_path, copy); + base::PlatformFileError error = underlying_file_util_->CopyOrMoveFile( + fs_context, src_file_path, dest_file_path, copy); if (error == base::PLATFORM_FILE_OK) { // TODO(kinuko): For cross-filesystem move case, call this with -growth @@ -259,8 +266,8 @@ base::PlatformFileError QuotaFileUtil::DeleteFile( ComputeFilePathCost(fs_context->src_virtual_path()); } - base::PlatformFileError error = FileSystemFileUtil::GetInstance()-> - DeleteFile(fs_context, file_path); + base::PlatformFileError error = underlying_file_util_->DeleteFile( + fs_context, file_path); if (error == base::PLATFORM_FILE_OK) helper.NotifyUpdate(growth); @@ -281,8 +288,8 @@ base::PlatformFileError QuotaFileUtil::DeleteSingleDirectory( if (file_util::DirectoryExists(file_path)) growth -= ComputeFilePathCost(fs_context->src_virtual_path()); - base::PlatformFileError error = FileSystemFileUtil::GetInstance()-> - DeleteSingleDirectory(fs_context, file_path); + base::PlatformFileError error = underlying_file_util_->DeleteSingleDirectory( + fs_context, file_path); if (error == base::PLATFORM_FILE_OK) helper.NotifyUpdate(growth); @@ -309,7 +316,7 @@ base::PlatformFileError QuotaFileUtil::Truncate( if (allowed_bytes_growth != kNoLimit && growth > allowed_bytes_growth) return base::PLATFORM_FILE_ERROR_NO_SPACE; - base::PlatformFileError error = FileSystemFileUtil::GetInstance()->Truncate( + base::PlatformFileError error = underlying_file_util_->Truncate( fs_context, path, length); if (error == base::PLATFORM_FILE_OK) diff --git a/webkit/fileapi/quota_file_util.h b/webkit/fileapi/quota_file_util.h index e7fc2d7..efad64f 100644 --- a/webkit/fileapi/quota_file_util.h +++ b/webkit/fileapi/quota_file_util.h @@ -5,6 +5,7 @@ #ifndef WEBKIT_FILEAPI_QUOTA_FILE_UTIL_H_ #define WEBKIT_FILEAPI_QUOTA_FILE_UTIL_H_ +#include "base/memory/scoped_ptr.h" #include "webkit/fileapi/file_system_file_util.h" #include "webkit/fileapi/file_system_operation_context.h" #pragma once @@ -13,11 +14,21 @@ namespace fileapi { class QuotaFileUtil : public FileSystemFileUtil { public: - static QuotaFileUtil* GetInstance(); - virtual ~QuotaFileUtil() {} - static const int64 kNoLimit; + // |underlying_file_util| is owned by the instance. It will be deleted by + // the owner instance. For example, it can be instanciated as follows: + // FileSystemFileUtil* file_util = new QuotaFileUtil(new SomeFileUtil()); + // + // To instanciate an object whose underlying file_util is FileSystemFileUtil, + // QuotaFileUtil::CreateDefault() can be used. + explicit QuotaFileUtil(FileSystemFileUtil* underlying_file_util); + virtual ~QuotaFileUtil(); + + // Creates a QuotaFileUtil instance with an underlying FileSystemFileUtil + // instance. + static QuotaFileUtil* CreateDefault(); + // TODO(dmikurube): Make this function variable by the constructor. int64 ComputeFilePathCost(const FilePath& file_path) const; @@ -56,13 +67,9 @@ class QuotaFileUtil : public FileSystemFileUtil { const FilePath& path, int64 length) OVERRIDE; - friend struct DefaultSingletonTraits<QuotaFileUtil>; - DISALLOW_COPY_AND_ASSIGN(QuotaFileUtil); - - protected: - QuotaFileUtil() {} - private: + scoped_ptr<FileSystemFileUtil> underlying_file_util_; + // TODO(dmikurube): Make these constants variable by the constructor. // // These values are based on Obfuscation DB. See crbug.com/86114 for the @@ -81,6 +88,8 @@ class QuotaFileUtil : public FileSystemFileUtil { const FilePath& dest_file_path, int64 allowed_bytes_growth, int64* growth) const; + + DISALLOW_COPY_AND_ASSIGN(QuotaFileUtil); }; } // namespace fileapi diff --git a/webkit/fileapi/quota_file_util_unittest.cc b/webkit/fileapi/quota_file_util_unittest.cc index f8c90c1..320a2fc 100644 --- a/webkit/fileapi/quota_file_util_unittest.cc +++ b/webkit/fileapi/quota_file_util_unittest.cc @@ -24,13 +24,13 @@ namespace fileapi { class QuotaFileUtilTest : public testing::Test { public: QuotaFileUtilTest() - : quota_file_util_(QuotaFileUtil::GetInstance()), - callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { + : callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { } void SetUp() { ASSERT_TRUE(data_dir_.CreateUniqueTempDir()); - quota_test_helper_.SetUp(data_dir_.path(), quota_file_util_); + quota_file_util_.reset(QuotaFileUtil::CreateDefault()); + quota_test_helper_.SetUp(data_dir_.path(), quota_file_util_.get()); obfuscated_test_helper_.SetUp( quota_test_helper_.file_system_context(), NULL); base_dir_ = obfuscated_test_helper_.GetOriginRootPath(); @@ -68,7 +68,7 @@ class QuotaFileUtilTest : public testing::Test { int64 file_path_cost = ComputeFilePathCost(file_name); scoped_ptr<FileSystemOperationContext> context(NewContext( file_path_cost, Path(file_name), FilePath())); - return QuotaFileUtil::GetInstance()->EnsureFileExists( + return quota_file_util_->EnsureFileExists( context.get(), Path(file_name), created); } @@ -76,7 +76,7 @@ class QuotaFileUtilTest : public testing::Test { const char* file_name, int64 size, int64 quota) { scoped_ptr<FileSystemOperationContext> context(NewContext( quota, Path(file_name), FilePath())); - return QuotaFileUtil::GetInstance()->Truncate( + return quota_file_util_->Truncate( context.get(), Path(file_name), size); } @@ -88,16 +88,20 @@ class QuotaFileUtilTest : public testing::Test { quota_test_helper().GetCachedOriginUsage()); } + QuotaFileUtil* quota_file_util() const { + return quota_file_util_.get(); + } + const FileSystemTestOriginHelper& quota_test_helper() const { return quota_test_helper_; } private: - QuotaFileUtil* quota_file_util_; ScopedTempDir data_dir_; FilePath base_dir_; FileSystemTestOriginHelper obfuscated_test_helper_; FileSystemTestOriginHelper quota_test_helper_; + scoped_ptr<QuotaFileUtil> quota_file_util_; base::ScopedCallbackFactory<QuotaFileUtilTest> callback_factory_; DISALLOW_COPY_AND_ASSIGN(QuotaFileUtilTest); @@ -115,21 +119,19 @@ TEST_F(QuotaFileUtilTest, CreateAndClose) { created = false; context.reset(NewContext(file_path_cost - 1, Path(file_name), FilePath())); - ASSERT_EQ(base::PLATFORM_FILE_ERROR_NO_SPACE, - QuotaFileUtil::GetInstance()->CreateOrOpen( - context.get(), Path(file_name), file_flags, &file_handle, &created)); + ASSERT_EQ(base::PLATFORM_FILE_ERROR_NO_SPACE, quota_file_util()->CreateOrOpen( + context.get(), Path(file_name), file_flags, &file_handle, &created)); ASSERT_FALSE(created); created = false; context.reset(NewContext(file_path_cost, Path(file_name), FilePath())); - ASSERT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->CreateOrOpen( - context.get(), Path(file_name), file_flags, &file_handle, &created)); + ASSERT_EQ(base::PLATFORM_FILE_OK, quota_file_util()->CreateOrOpen( + context.get(), Path(file_name), file_flags, &file_handle, &created)); ASSERT_TRUE(created); context.reset(NewContext(0, FilePath(), FilePath())); - EXPECT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->Close(context.get(), file_handle)); + EXPECT_EQ(base::PLATFORM_FILE_OK, quota_file_util()->Close( + context.get(), file_handle)); } TEST_F(QuotaFileUtilTest, EnsureFileExists) { @@ -142,8 +144,8 @@ TEST_F(QuotaFileUtilTest, EnsureFileExists) { context.reset(NewContext( ComputeFilePathCost(file_name) - 1, Path(file_name), FilePath())); ASSERT_EQ(base::PLATFORM_FILE_ERROR_NO_SPACE, - QuotaFileUtil::GetInstance()->EnsureFileExists( - context.get(), Path(file_name), &created)); + quota_file_util()->EnsureFileExists( + context.get(), Path(file_name), &created)); ASSERT_FALSE(created); created = false; @@ -198,26 +200,24 @@ TEST_F(QuotaFileUtilTest, CopyFile) { context.reset(NewContext(1020 + ComputeFilePathCost(to_file1), Path(from_file), Path(to_file1))); - ASSERT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->Copy(context.get(), - Path(from_file), - Path(to_file1))); + ASSERT_EQ(base::PLATFORM_FILE_OK, quota_file_util()->Copy( + context.get(), Path(from_file), Path(to_file1))); file_path_cost += ComputeFilePathCost(to_file1); CheckUsage(2041, file_path_cost); context.reset(NewContext(1020 + ComputeFilePathCost(to_file2) - 1, Path(from_file), Path(to_file2))); ASSERT_EQ(base::PLATFORM_FILE_ERROR_NO_SPACE, - QuotaFileUtil::GetInstance()->Copy(context.get(), - Path(from_file), - Path(to_file2))); + quota_file_util()->Copy(context.get(), + Path(from_file), + Path(to_file2))); CheckUsage(2041, file_path_cost); context.reset(NewContext(1019, Path(from_file), Path(prior_file))); ASSERT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->Copy(context.get(), - Path(from_file), - Path(prior_file))); + quota_file_util()->Copy(context.get(), + Path(from_file), + Path(prior_file))); CheckUsage(3060, file_path_cost); } @@ -234,7 +234,7 @@ TEST_F(QuotaFileUtilTest, CopyDirectory) { context.reset(NewContext(ComputeFilePathCost(from_dir), Path(from_dir), FilePath())); ASSERT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->CreateDirectory(context.get(), + quota_file_util()->CreateDirectory(context.get(), Path(from_dir), false, false)); file_path_cost += ComputeFilePathCost(from_dir); @@ -258,9 +258,9 @@ TEST_F(QuotaFileUtilTest, CopyDirectory) { ComputeFilePathCost(from_file2), Path(from_dir), Path(to_dir1))); ASSERT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->Copy(context.get(), - Path(from_dir), - Path(to_dir1))); + quota_file_util()->Copy(context.get(), + Path(from_dir), + Path(to_dir1))); file_path_cost += ComputeFilePathCost(to_dir1) + ComputeFilePathCost(from_file1) + ComputeFilePathCost(from_file2); @@ -272,9 +272,9 @@ TEST_F(QuotaFileUtilTest, CopyDirectory) { ComputeFilePathCost(from_file2) - 1, Path(from_dir), Path(to_dir2))); EXPECT_EQ(base::PLATFORM_FILE_ERROR_NO_SPACE, - QuotaFileUtil::GetInstance()->Copy(context.get(), - Path(from_dir), - Path(to_dir2))); + quota_file_util()->Copy(context.get(), + Path(from_dir), + Path(to_dir2))); int64 file_path_cost1 = file_path_cost + ComputeFilePathCost(to_dir2) + ComputeFilePathCost(from_file1); int64 file_path_cost2 = file_path_cost + @@ -305,9 +305,9 @@ TEST_F(QuotaFileUtilTest, MoveFile) { context.reset(NewContext(0, Path(from_file), Path(to_file))); ASSERT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->Move(context.get(), - Path(from_file), - Path(to_file))); + quota_file_util()->Move(context.get(), + Path(from_file), + Path(to_file))); file_path_cost -= ComputeFilePathCost(from_file); file_path_cost += ComputeFilePathCost(to_file); CheckUsage(1020, file_path_cost); @@ -329,18 +329,18 @@ TEST_F(QuotaFileUtilTest, MoveFile) { ComputeFilePathCost(from_file) - 1 - 1, Path(from_file), Path(prior_file))); ASSERT_EQ(base::PLATFORM_FILE_ERROR_NO_SPACE, - QuotaFileUtil::GetInstance()->Move(context.get(), - Path(from_file), - Path(prior_file))); + quota_file_util()->Move(context.get(), + Path(from_file), + Path(prior_file))); CheckUsage(2041, file_path_cost); context.reset(NewContext(ComputeFilePathCost(prior_file) - ComputeFilePathCost(from_file) - 1, Path(from_file), Path(prior_file))); ASSERT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->Move(context.get(), - Path(from_file), - Path(prior_file))); + quota_file_util()->Move(context.get(), + Path(from_file), + Path(prior_file))); file_path_cost -= ComputeFilePathCost(from_file); file_path_cost += ComputeFilePathCost(prior_file); CheckUsage(2040, file_path_cost); @@ -358,9 +358,9 @@ TEST_F(QuotaFileUtilTest, MoveDirectory) { context.reset(NewContext(QuotaFileUtil::kNoLimit, Path(from_dir), FilePath())); ASSERT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->CreateDirectory(context.get(), - Path(from_dir), - false, false)); + quota_file_util()->CreateDirectory(context.get(), + Path(from_dir), + false, false)); file_path_cost += ComputeFilePathCost(from_dir); ASSERT_EQ(base::PLATFORM_FILE_OK, EnsureFileExists(from_file, &created)); ASSERT_TRUE(created); @@ -371,9 +371,9 @@ TEST_F(QuotaFileUtilTest, MoveDirectory) { context.reset(NewContext(1020, Path(from_dir), Path(to_dir1))); ASSERT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->Move(context.get(), - Path(from_dir), - Path(to_dir1))); + quota_file_util()->Move(context.get(), + Path(from_dir), + Path(to_dir1))); file_path_cost -= ComputeFilePathCost(from_dir); file_path_cost += ComputeFilePathCost(to_dir1); CheckUsage(1020, file_path_cost); @@ -381,9 +381,9 @@ TEST_F(QuotaFileUtilTest, MoveDirectory) { context.reset(NewContext(QuotaFileUtil::kNoLimit, Path(from_dir), FilePath())); ASSERT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->CreateDirectory(context.get(), - Path(from_dir), - false, false)); + quota_file_util()->CreateDirectory(context.get(), + Path(from_dir), + false, false)); file_path_cost += ComputeFilePathCost(from_dir); ASSERT_EQ(base::PLATFORM_FILE_OK, EnsureFileExists(from_file, &created)); ASSERT_TRUE(created); @@ -394,9 +394,9 @@ TEST_F(QuotaFileUtilTest, MoveDirectory) { context.reset(NewContext(1019, Path(from_dir), Path(to_dir2))); EXPECT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->Move(context.get(), - Path(from_dir), - Path(to_dir2))); + quota_file_util()->Move(context.get(), + Path(from_dir), + Path(to_dir2))); file_path_cost -= ComputeFilePathCost(from_dir); file_path_cost += ComputeFilePathCost(to_dir2); CheckUsage(2040, file_path_cost); @@ -416,9 +416,9 @@ TEST_F(QuotaFileUtilTest, Remove) { file_path_cost += ComputeFilePathCost(file); context.reset(NewContext(QuotaFileUtil::kNoLimit, Path(dir), FilePath())); ASSERT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->CreateDirectory(context.get(), - Path(dir), - false, false)); + quota_file_util()->CreateDirectory(context.get(), + Path(dir), + false, false)); file_path_cost += ComputeFilePathCost(dir); ASSERT_EQ(base::PLATFORM_FILE_OK, EnsureFileExists(dfile1, &created)); ASSERT_TRUE(created); @@ -438,17 +438,17 @@ TEST_F(QuotaFileUtilTest, Remove) { context.reset(NewContext(QuotaFileUtil::kNoLimit, Path(file), FilePath())); ASSERT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->Delete(context.get(), - Path(file), - false)); + quota_file_util()->Delete(context.get(), + Path(file), + false)); file_path_cost -= ComputeFilePathCost(file); CheckUsage(1140, file_path_cost); context.reset(NewContext(QuotaFileUtil::kNoLimit, Path(dir), FilePath())); ASSERT_EQ(base::PLATFORM_FILE_OK, - QuotaFileUtil::GetInstance()->Delete(context.get(), - Path(dir), - true)); + quota_file_util()->Delete(context.get(), + Path(dir), + true)); file_path_cost = 0; CheckUsage(0, 0); } diff --git a/webkit/fileapi/sandbox_mount_point_provider.cc b/webkit/fileapi/sandbox_mount_point_provider.cc index a9d4d13..6570170 100644 --- a/webkit/fileapi/sandbox_mount_point_provider.cc +++ b/webkit/fileapi/sandbox_mount_point_provider.cc @@ -279,7 +279,7 @@ SandboxMountPointProvider::SandboxMountPointProvider( path_manager_(path_manager), file_message_loop_(file_message_loop), profile_path_(profile_path), - quota_file_util_(QuotaFileUtil::GetInstance()), + quota_file_util_(QuotaFileUtil::CreateDefault()), sandbox_file_util_( new ObfuscatedFileSystemFileUtil( profile_path.Append(kNewFileSystemDirectory), |