diff options
author | tzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-19 03:36:40 +0000 |
---|---|---|
committer | tzik@chromium.org <tzik@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-19 03:36:40 +0000 |
commit | 8a9f00bbfeb400a0921438439542bfe7642c51e5 (patch) | |
tree | 6e72a05235b58aea2cd1d06ef4aabef0caf5815c /webkit/quota | |
parent | 1d872d38c8ea8055dd4bf3b5546cf7dda8f1bc69 (diff) | |
download | chromium_src-8a9f00bbfeb400a0921438439542bfe7642c51e5.zip chromium_src-8a9f00bbfeb400a0921438439542bfe7642c51e5.tar.gz chromium_src-8a9f00bbfeb400a0921438439542bfe7642c51e5.tar.bz2 |
InitializationFlag to QuotaDatabase
BUG=61676
TEST=QuotaDatabaseTest.InitializationFlag
Review URL: http://codereview.chromium.org/7042001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85867 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/quota')
-rw-r--r-- | webkit/quota/quota_database.cc | 18 | ||||
-rw-r--r-- | webkit/quota/quota_database.h | 7 | ||||
-rw-r--r-- | webkit/quota/quota_database_unittest.cc | 16 |
3 files changed, 40 insertions, 1 deletions
diff --git a/webkit/quota/quota_database.cc b/webkit/quota/quota_database.cc index cbe6cad..c4e7f53 100644 --- a/webkit/quota/quota_database.cc +++ b/webkit/quota/quota_database.cc @@ -24,6 +24,7 @@ const char kOriginsTable[] = "Origins"; const char kHostQuotaTable[] = "HostQuotaTable"; const char kOriginLastAccessTable[] = "OriginLastAccessTable"; const char kGlobalQuotaKeyPrefix[] = "GlobalQuota-"; +const char kIsOriginTableBootstrapped[] = "IsOriginTableBootstrapped"; const struct { const char* table_name; @@ -129,7 +130,7 @@ bool QuotaDatabase::GetHostQuota( bool QuotaDatabase::SetHostQuota( const std::string& host, StorageType type, int64 quota) { - DCHECK(quota >= 0); + DCHECK_GE(quota, 0); if (!LazyOpen(true)) return false; @@ -281,6 +282,21 @@ bool QuotaDatabase::GetLRUOrigin( return statement.Succeeded(); } +bool QuotaDatabase::IsOriginDatabaseBootstrapped() { + if (!LazyOpen(true)) + return false; + + int flag = 0; + return meta_table_->GetValue(kIsOriginTableBootstrapped, &flag) && flag; +} + +bool QuotaDatabase::SetOriginDatabaseBootstrapped(bool bootstrap_flag) { + if (!LazyOpen(true)) + return false; + + return meta_table_->SetValue(kIsOriginTableBootstrapped, bootstrap_flag); +} + bool QuotaDatabase::FindOriginUsedCount( const GURL& origin, StorageType type, int* used_count) { DCHECK(used_count); diff --git a/webkit/quota/quota_database.h b/webkit/quota/quota_database.h index 2e27c1f..4cc55cb 100644 --- a/webkit/quota/quota_database.h +++ b/webkit/quota/quota_database.h @@ -6,6 +6,7 @@ #define WEBKIT_QUOTA_QUOTA_DATABASE_H_ #include <set> +#include <string> #include "base/basictypes.h" #include "base/file_path.h" @@ -52,6 +53,12 @@ class QuotaDatabase { const std::set<GURL>& exceptions, GURL* origin); + // Returns false if SetOriginDatabaseBootstrapped has never + // been called before, which means existing origins may not have been + // registered. + bool IsOriginDatabaseBootstrapped(); + bool SetOriginDatabaseBootstrapped(bool bootstrap_flag); + private: bool FindOriginUsedCount(const GURL& origin, StorageType type, diff --git a/webkit/quota/quota_database_unittest.cc b/webkit/quota/quota_database_unittest.cc index 5f6c1cc..f65bea2 100644 --- a/webkit/quota/quota_database_unittest.cc +++ b/webkit/quota/quota_database_unittest.cc @@ -184,4 +184,20 @@ TEST_F(QuotaDatabaseTest, OriginLastAccessTimeLRU) { OriginLastAccessTimeLRU(FilePath()); } +TEST(QuotaDatabaseTest, BootstrapFlag) { + ScopedTempDir data_dir; + ASSERT_TRUE(data_dir.CreateUniqueTempDir()); + + const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); + QuotaDatabase db(kDbFile); + + + EXPECT_FALSE(db.IsOriginDatabaseBootstrapped()); + EXPECT_TRUE(db.SetOriginDatabaseBootstrapped(true)); + EXPECT_TRUE(db.IsOriginDatabaseBootstrapped()); + EXPECT_TRUE(db.SetOriginDatabaseBootstrapped(false)); + EXPECT_FALSE(db.IsOriginDatabaseBootstrapped()); +} + + } // namespace quota |