summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-09 06:59:16 +0000
committerkinuko@chromium.org <kinuko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-09 06:59:16 +0000
commit6c20697e6da610f40947526bbd65dbda0579445c (patch)
tree97989a6b4e28a59038e7656c79d0502ba14b8bdd /webkit
parentcc9c9d751953abd0230d7ae22ac2be27b2d9b632 (diff)
downloadchromium_src-6c20697e6da610f40947526bbd65dbda0579445c.zip
chromium_src-6c20697e6da610f40947526bbd65dbda0579445c.tar.gz
chromium_src-6c20697e6da610f40947526bbd65dbda0579445c.tar.bz2
FileSystem code cleanup 1st cut - does some class renaming.
Renamed FileSystemQuota to FileSystemQuotaManager. Removed PlatFormErrorToFileError in simple_file_system.cc (in favor of webkit_flue::PlatformErrorToFileError) BUG=60243 TEST=none Review URL: http://codereview.chromium.org/4017007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65506 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/fileapi/file_system_quota.cc39
-rw-r--r--webkit/fileapi/file_system_quota_manager.cc51
-rw-r--r--webkit/fileapi/file_system_quota_manager.h (renamed from webkit/fileapi/file_system_quota.h)22
-rw-r--r--webkit/fileapi/file_system_quota_manager_unittest.cc (renamed from webkit/fileapi/file_system_quota_unittest.cc)24
-rw-r--r--webkit/fileapi/webkit_fileapi.gypi4
-rw-r--r--webkit/tools/test_shell/simple_file_system.cc23
-rw-r--r--webkit/tools/test_shell/test_shell.gypi2
7 files changed, 83 insertions, 82 deletions
diff --git a/webkit/fileapi/file_system_quota.cc b/webkit/fileapi/file_system_quota.cc
deleted file mode 100644
index 7133082..0000000
--- a/webkit/fileapi/file_system_quota.cc
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "webkit/fileapi/file_system_quota.h"
-
-#include "base/file_path.h"
-#include "base/file_util_proxy.h"
-#include "base/ref_counted.h"
-#include "base/scoped_callback_factory.h"
-
-namespace fileapi {
-
-const int64 FileSystemQuota::kUnknownSize = -1;
-
-FileSystemQuota::FileSystemQuota() {}
-
-FileSystemQuota::~FileSystemQuota() {}
-
-bool FileSystemQuota::CheckOriginQuota(const GURL& origin, int64) {
- return CheckIfOriginGrantedUnlimitedQuota(origin);
-}
-
-void FileSystemQuota::SetOriginQuotaUnlimited(const GURL& origin) {
- DCHECK(origin == origin.GetOrigin());
- unlimited_quota_origins_.insert(origin);
-}
-
-void FileSystemQuota::ResetOriginQuotaUnlimited(const GURL& origin) {
- DCHECK(origin == origin.GetOrigin());
- unlimited_quota_origins_.erase(origin);
-}
-
-bool FileSystemQuota::CheckIfOriginGrantedUnlimitedQuota(const GURL& origin) {
- std::set<GURL>::const_iterator found = unlimited_quota_origins_.find(origin);
- return (found != unlimited_quota_origins_.end());
-}
-
-} // namespace fileapi
diff --git a/webkit/fileapi/file_system_quota_manager.cc b/webkit/fileapi/file_system_quota_manager.cc
new file mode 100644
index 0000000..13a33f6
--- /dev/null
+++ b/webkit/fileapi/file_system_quota_manager.cc
@@ -0,0 +1,51 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "webkit/fileapi/file_system_quota_manager.h"
+
+#include "base/file_path.h"
+#include "base/file_util_proxy.h"
+#include "base/ref_counted.h"
+#include "base/scoped_callback_factory.h"
+
+namespace fileapi {
+
+const int64 FileSystemQuotaManager::kUnknownSize = -1;
+
+FileSystemQuotaManager::FileSystemQuotaManager(
+ bool allow_file_access_from_files,
+ bool unlimited_quota)
+ : allow_file_access_from_files_(allow_file_access_from_files),
+ unlimited_quota_(unlimited_quota) {
+}
+
+FileSystemQuotaManager::~FileSystemQuotaManager() {}
+
+bool FileSystemQuotaManager::CheckOriginQuota(const GURL& origin, int64) {
+ // If allow-file-access-from-files flag is explicitly given and the scheme
+ // is file, or if unlimited quota for this process was explicitly requested,
+ // return true.
+ if (unlimited_quota_ ||
+ (origin.SchemeIsFile() && allow_file_access_from_files_))
+ return true;
+ return CheckIfOriginGrantedUnlimitedQuota(origin);
+}
+
+void FileSystemQuotaManager::SetOriginQuotaUnlimited(const GURL& origin) {
+ DCHECK(origin == origin.GetOrigin());
+ unlimited_quota_origins_.insert(origin);
+}
+
+void FileSystemQuotaManager::ResetOriginQuotaUnlimited(const GURL& origin) {
+ DCHECK(origin == origin.GetOrigin());
+ unlimited_quota_origins_.erase(origin);
+}
+
+bool FileSystemQuotaManager::CheckIfOriginGrantedUnlimitedQuota(
+ const GURL& origin) {
+ std::set<GURL>::const_iterator found = unlimited_quota_origins_.find(origin);
+ return (found != unlimited_quota_origins_.end());
+}
+
+} // namespace fileapi
diff --git a/webkit/fileapi/file_system_quota.h b/webkit/fileapi/file_system_quota_manager.h
index 9b77c9b..f1c94e1 100644
--- a/webkit/fileapi/file_system_quota.h
+++ b/webkit/fileapi/file_system_quota_manager.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef WEBKIT_FILEAPI_FILE_SYSTEM_QUOTA_H_
-#define WEBKIT_FILEAPI_FILE_SYSTEM_QUOTA_H_
+#ifndef WEBKIT_FILEAPI_FILE_SYSTEM_QUOTA_MANAGER_H_
+#define WEBKIT_FILEAPI_FILE_SYSTEM_QUOTA_MANAGER_H_
#include <set>
@@ -14,12 +14,17 @@ namespace fileapi {
// A quota manager for FileSystem. For now it has little implementation
// and just allows unlimited quota for apps.
-class FileSystemQuota {
+class FileSystemQuotaManager {
public:
static const int64 kUnknownSize;
- FileSystemQuota();
- ~FileSystemQuota();
+ // If |allow_file_access_from_files| is true, unlimited access is granted
+ // for file:/// URLs.
+ // If |unlimited_quota| is true, unlimited access is granted for every
+ // origin. This flag must be used only for testing.
+ FileSystemQuotaManager(bool allow_file_access_from_files,
+ bool unlimited_quota);
+ ~FileSystemQuotaManager();
// Checks if the origin can grow its usage by |growth| bytes.
// This only performs in-memory check and returns immediately.
@@ -36,9 +41,12 @@ class FileSystemQuota {
// For some extensions/apps we allow unlimited quota.
std::set<GURL> unlimited_quota_origins_;
- DISALLOW_COPY_AND_ASSIGN(FileSystemQuota);
+ const bool allow_file_access_from_files_;
+ const bool unlimited_quota_;
+
+ DISALLOW_COPY_AND_ASSIGN(FileSystemQuotaManager);
};
} // namespace fileapi
-#endif // WEBKIT_FILEAPI_FILE_SYSTEM_QUOTA_H_
+#endif // WEBKIT_FILEAPI_FILE_SYSTEM_QUOTA_MANAGER_H_
diff --git a/webkit/fileapi/file_system_quota_unittest.cc b/webkit/fileapi/file_system_quota_manager_unittest.cc
index ff0d733..3bc7ac3 100644
--- a/webkit/fileapi/file_system_quota_unittest.cc
+++ b/webkit/fileapi/file_system_quota_manager_unittest.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "webkit/fileapi/file_system_quota.h"
+#include "webkit/fileapi/file_system_quota_manager.h"
#include "base/basictypes.h"
#include "base/logging.h"
@@ -12,19 +12,19 @@
using namespace fileapi;
-class FileSystemQuotaTest : public testing::Test {
+class FileSystemQuotaManagerTest : public testing::Test {
public:
- FileSystemQuotaTest() { }
+ FileSystemQuotaManagerTest() { }
void SetUp() {
- quota_.reset(new FileSystemQuota);
+ quota_.reset(new FileSystemQuotaManager(false, false));
}
- FileSystemQuota* quota() const { return quota_.get(); }
+ FileSystemQuotaManager* quota() const { return quota_.get(); }
protected:
- scoped_ptr<FileSystemQuota> quota_;
- DISALLOW_COPY_AND_ASSIGN(FileSystemQuotaTest);
+ scoped_ptr<FileSystemQuotaManager> quota_;
+ DISALLOW_COPY_AND_ASSIGN(FileSystemQuotaManagerTest);
};
namespace {
@@ -38,7 +38,7 @@ static const char* const kTestOrigins[] = {
} // anonymous namespace
-TEST_F(FileSystemQuotaTest, CheckOriginQuotaNotAllowed) {
+TEST_F(FileSystemQuotaManagerTest, CheckOriginQuotaNotAllowed) {
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestOrigins); ++i) {
SCOPED_TRACE(testing::Message() << "CheckOriginQuotaNotAllowed #"
<< i << " " << kTestOrigins[i]);
@@ -49,7 +49,7 @@ TEST_F(FileSystemQuotaTest, CheckOriginQuotaNotAllowed) {
}
}
-TEST_F(FileSystemQuotaTest, CheckOriginQuotaUnlimited) {
+TEST_F(FileSystemQuotaManagerTest, CheckOriginQuotaUnlimited) {
// Tests if SetOriginQuotaUnlimited and ResetOriginQuotaUnlimited
// are working as expected.
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestOrigins); ++i) {
@@ -73,7 +73,7 @@ TEST_F(FileSystemQuotaTest, CheckOriginQuotaUnlimited) {
}
}
-TEST_F(FileSystemQuotaTest, CheckOriginQuotaWithMixedSet) {
+TEST_F(FileSystemQuotaManagerTest, CheckOriginQuotaWithMixedSet) {
// Tests setting unlimited quota for some urls doesn't affect
// other urls.
GURL test_url1("http://foo.bar.com/");
@@ -90,7 +90,7 @@ TEST_F(FileSystemQuotaTest, CheckOriginQuotaWithMixedSet) {
}
}
-TEST_F(FileSystemQuotaTest, CheckOriginQuotaMixedWithDifferentScheme) {
+TEST_F(FileSystemQuotaManagerTest, CheckOriginQuotaMixedWithDifferentScheme) {
// Tests setting unlimited quota for urls doesn't affect
// pages in the same hosts but with different scheme.
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestOrigins); ++i) {
@@ -119,7 +119,7 @@ TEST_F(FileSystemQuotaTest, CheckOriginQuotaMixedWithDifferentScheme) {
}
}
-TEST_F(FileSystemQuotaTest, CheckOriginQuotaMixedWithDifferentPort) {
+TEST_F(FileSystemQuotaManagerTest, CheckOriginQuotaMixedWithDifferentPort) {
// Tests setting unlimited quota for urls doesn't affect
// pages in the same scheme/hosts but with different port number.
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestOrigins); ++i) {
diff --git a/webkit/fileapi/webkit_fileapi.gypi b/webkit/fileapi/webkit_fileapi.gypi
index 73d49838..de9e612 100644
--- a/webkit/fileapi/webkit_fileapi.gypi
+++ b/webkit/fileapi/webkit_fileapi.gypi
@@ -19,8 +19,8 @@
'file_system_operation.h',
'file_system_path_manager.cc',
'file_system_path_manager.h',
- 'file_system_quota.cc',
- 'file_system_quota.h',
+ 'file_system_quota_manager.cc',
+ 'file_system_quota_manager.h',
'file_system_types.h',
'file_writer_delegate.cc',
'file_writer_delegate.h',
diff --git a/webkit/tools/test_shell/simple_file_system.cc b/webkit/tools/test_shell/simple_file_system.cc
index 563ff34..520f709 100644
--- a/webkit/tools/test_shell/simple_file_system.cc
+++ b/webkit/tools/test_shell/simple_file_system.cc
@@ -24,26 +24,6 @@ using WebKit::WebVector;
namespace {
-WebKit::WebFileError PlatformFileErrorToWebFileError(
- base::PlatformFileError error_code) {
- switch (error_code) {
- case base::PLATFORM_FILE_ERROR_NOT_FOUND:
- return WebKit::WebFileErrorNotFound;
- case base::PLATFORM_FILE_ERROR_INVALID_OPERATION:
- case base::PLATFORM_FILE_ERROR_EXISTS:
- case base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY:
- return WebKit::WebFileErrorInvalidModification;
- case base::PLATFORM_FILE_ERROR_ACCESS_DENIED:
- return WebKit::WebFileErrorNoModificationAllowed;
- case base::PLATFORM_FILE_ERROR_FAILED:
- return WebKit::WebFileErrorInvalidState;
- case base::PLATFORM_FILE_ERROR_ABORT:
- return WebKit::WebFileErrorAbort;
- default:
- return WebKit::WebFileErrorInvalidModification;
- }
-}
-
class TestShellFileSystemCallbackDispatcher
: public fileapi::FileSystemCallbackDispatcher {
public:
@@ -94,7 +74,8 @@ class TestShellFileSystemCallbackDispatcher
}
virtual void DidFail(base::PlatformFileError error_code) {
- callbacks_->didFail(PlatformFileErrorToWebFileError(error_code));
+ callbacks_->didFail(
+ webkit_glue::PlatformFileErrorToWebFileError(error_code));
file_system_->RemoveCompletedOperation(request_id_);
}
diff --git a/webkit/tools/test_shell/test_shell.gypi b/webkit/tools/test_shell/test_shell.gypi
index 901f6fc..6bb3bbb 100644
--- a/webkit/tools/test_shell/test_shell.gypi
+++ b/webkit/tools/test_shell/test_shell.gypi
@@ -389,7 +389,7 @@
'../../database/quota_table_unittest.cc',
'../../fileapi/file_system_operation_unittest.cc',
'../../fileapi/file_system_path_manager_unittest.cc',
- '../../fileapi/file_system_quota_unittest.cc',
+ '../../fileapi/file_system_quota_manager_unittest.cc',
'../../fileapi/webfilewriter_base_unittest.cc',
'../../glue/bookmarklet_unittest.cc',
'../../glue/context_menu_unittest.cc',