Index: webkit/quota/quota_manager.cc |
diff --git a/webkit/quota/quota_manager.cc b/webkit/quota/quota_manager.cc |
index 640de20866416e321c5f0de560f10fa1bfd8c48c..031aa9daa36e9b7c03ad43bc00fff7cf4f843760 100644 |
--- a/webkit/quota/quota_manager.cc |
+++ b/webkit/quota/quota_manager.cc |
@@ -644,8 +644,11 @@ class QuotaManager::DatabaseTaskBase : public QuotaThreadTask { |
} |
protected: |
+ virtual ~DatabaseTaskBase() {} |
+ |
virtual void DatabaseTaskCompleted() = 0; |
+ // QuotaThreadTask: |
virtual void Completed() OVERRIDE { |
manager_->db_disabled_ = db_disabled_; |
DatabaseTaskCompleted(); |
@@ -674,6 +677,9 @@ class QuotaManager::InitializeTask : public QuotaManager::DatabaseTaskBase { |
} |
protected: |
+ virtual ~InitializeTask() {} |
+ |
+ // QuotaThreadTask: |
virtual void RunOnTargetThread() OVERRIDE { |
// See if we have overriding temporary quota configuration. |
database()->GetQuotaConfigValue(QuotaDatabase::kTemporaryQuotaOverrideKey, |
@@ -682,6 +688,7 @@ class QuotaManager::InitializeTask : public QuotaManager::DatabaseTaskBase { |
&desired_available_space_); |
} |
+ // DatabaseTaskBase: |
virtual void DatabaseTaskCompleted() OVERRIDE { |
manager()->temporary_quota_override_ = temporary_quota_override_; |
manager()->desired_available_space_ = desired_available_space_; |
@@ -706,6 +713,9 @@ class QuotaManager::UpdateTemporaryQuotaOverrideTask |
callback_(callback) {} |
protected: |
+ virtual ~UpdateTemporaryQuotaOverrideTask() {} |
+ |
+ // QuotaThreadTask: |
virtual void RunOnTargetThread() OVERRIDE { |
if (!database()->SetQuotaConfigValue( |
QuotaDatabase::kTemporaryQuotaOverrideKey, new_quota_)) { |
@@ -715,6 +725,7 @@ class QuotaManager::UpdateTemporaryQuotaOverrideTask |
} |
} |
+ // DatabaseTaskBase: |
virtual void DatabaseTaskCompleted() OVERRIDE { |
if (!db_disabled()) { |
manager()->temporary_quota_override_ = new_quota_; |
@@ -748,15 +759,22 @@ class QuotaManager::GetPersistentHostQuotaTask |
quota_(-1), |
callback_(callback) { |
} |
+ |
protected: |
+ virtual ~GetPersistentHostQuotaTask() {} |
+ |
+ // QuotaThreadTask: |
virtual void RunOnTargetThread() OVERRIDE { |
if (!database()->GetHostQuota(host_, kStorageTypePersistent, "a_)) |
quota_ = 0; |
} |
+ |
+ // DatabaseTaskBase: |
virtual void DatabaseTaskCompleted() OVERRIDE { |
callback_.Run(kQuotaStatusOk, |
host_, kStorageTypePersistent, quota_); |
} |
+ |
private: |
std::string host_; |
int64 quota_; |
@@ -777,7 +795,11 @@ class QuotaManager::UpdatePersistentHostQuotaTask |
callback_(callback) { |
DCHECK_GE(new_quota_, 0); |
} |
+ |
protected: |
+ virtual ~UpdatePersistentHostQuotaTask() {} |
+ |
+ // QuotaThreadTask: |
virtual void RunOnTargetThread() OVERRIDE { |
if (!database()->SetHostQuota(host_, kStorageTypePersistent, new_quota_)) { |
set_db_disabled(true); |
@@ -785,15 +807,16 @@ class QuotaManager::UpdatePersistentHostQuotaTask |
} |
} |
+ virtual void Aborted() OVERRIDE { |
+ callback_.Reset(); |
+ } |
+ |
+ // DatabaseTaskBase: |
virtual void DatabaseTaskCompleted() OVERRIDE { |
callback_.Run(db_disabled() ? kQuotaErrorInvalidAccess : kQuotaStatusOk, |
host_, kStorageTypePersistent, new_quota_); |
} |
- virtual void Aborted() OVERRIDE { |
- callback_.Reset(); |
- } |
- |
private: |
std::string host_; |
int64 new_quota_; |
@@ -828,19 +851,23 @@ class QuotaManager::GetLRUOriginTask |
} |
protected: |
+ virtual ~GetLRUOriginTask() {} |
+ |
+ // QuotaThreadTask: |
virtual void RunOnTargetThread() OVERRIDE { |
database()->GetLRUOrigin( |
type_, exceptions_, special_storage_policy_, &url_); |
} |
- virtual void DatabaseTaskCompleted() OVERRIDE { |
- callback_.Run(url_); |
- } |
- |
virtual void Aborted() OVERRIDE { |
callback_.Reset(); |
} |
+ // DatabaseTaskBase: |
+ virtual void DatabaseTaskCompleted() OVERRIDE { |
+ callback_.Run(url_); |
+ } |
+ |
private: |
StorageType type_; |
std::set<GURL> exceptions_; |
@@ -861,11 +888,16 @@ class QuotaManager::DeleteOriginInfo |
type_(type) {} |
protected: |
+ virtual ~DeleteOriginInfo() {} |
+ |
+ // QuotaThreadTask: |
virtual void RunOnTargetThread() OVERRIDE { |
if (!database()->DeleteOriginInfo(origin_, type_)) { |
set_db_disabled(true); |
} |
} |
+ |
+ // DatabaseTaskBase: |
virtual void DatabaseTaskCompleted() OVERRIDE {} |
private: |
@@ -886,6 +918,9 @@ class QuotaManager::InitializeTemporaryOriginsInfoTask |
} |
protected: |
+ virtual ~InitializeTemporaryOriginsInfoTask() {} |
+ |
+ // QuotaThreadTask: |
virtual void RunOnTargetThread() OVERRIDE { |
if (!database()->IsOriginDatabaseBootstrapped()) { |
// Register existing origins with 0 last time access. |
@@ -898,6 +933,8 @@ class QuotaManager::InitializeTemporaryOriginsInfoTask |
} |
} |
} |
+ |
+ // DatabaseTaskBase: |
virtual void DatabaseTaskCompleted() OVERRIDE { |
if (has_registered_origins_) |
manager()->StartEviction(); |
@@ -918,9 +955,11 @@ class QuotaManager::AvailableSpaceQueryTask : public QuotaThreadTask { |
space_(-1), |
callback_(callback) { |
} |
- virtual ~AvailableSpaceQueryTask() {} |
protected: |
+ virtual ~AvailableSpaceQueryTask() {} |
+ |
+ // QuotaThreadTask: |
virtual void RunOnTargetThread() OVERRIDE { |
space_ = base::SysInfo::AmountOfFreeDiskSpace(profile_path_); |
} |
@@ -953,11 +992,16 @@ class QuotaManager::UpdateAccessTimeTask |
accessed_time_(accessed_time) {} |
protected: |
+ virtual ~UpdateAccessTimeTask() {} |
+ |
+ // QuotaThreadTask: |
virtual void RunOnTargetThread() OVERRIDE { |
if (!database()->SetOriginLastAccessTime(origin_, type_, accessed_time_)) { |
set_db_disabled(true); |
} |
} |
+ |
+ // DatabaseTaskBase: |
virtual void DatabaseTaskCompleted() OVERRIDE {} |
private: |
@@ -980,12 +1024,17 @@ class QuotaManager::UpdateModifiedTimeTask |
modified_time_(modified_time) {} |
protected: |
+ virtual ~UpdateModifiedTimeTask() {} |
+ |
+ // QuotaThreadTask: |
virtual void RunOnTargetThread() OVERRIDE { |
if (!database()->SetOriginLastModifiedTime( |
origin_, type_, modified_time_)) { |
set_db_disabled(true); |
} |
} |
+ |
+ // DatabaseTaskBase: |
virtual void DatabaseTaskCompleted() OVERRIDE {} |
private: |
@@ -1008,6 +1057,9 @@ class QuotaManager::GetModifiedSinceTask |
callback_(callback) {} |
protected: |
+ virtual ~GetModifiedSinceTask() {} |
+ |
+ // QuotaThreadTask: |
virtual void RunOnTargetThread() OVERRIDE { |
if (!database()->GetOriginsModifiedSince( |
type_, &origins_, modified_since_)) { |
@@ -1015,14 +1067,15 @@ class QuotaManager::GetModifiedSinceTask |
} |
} |
- virtual void DatabaseTaskCompleted() OVERRIDE { |
- callback_.Run(origins_, type_); |
- } |
- |
virtual void Aborted() OVERRIDE { |
callback_.Run(std::set<GURL>(), type_); |
} |
+ // DatabaseTaskBase: |
+ virtual void DatabaseTaskCompleted() OVERRIDE { |
+ callback_.Run(origins_, type_); |
+ } |
+ |
private: |
StorageType type_; |
base::Time modified_since_; |
@@ -1046,7 +1099,11 @@ class QuotaManager::DumpQuotaTableTask |
: DatabaseTaskBase(manager), |
callback_(callback) { |
} |
+ |
protected: |
+ virtual ~DumpQuotaTableTask() {} |
+ |
+ // QuotaThreadTask: |
virtual void RunOnTargetThread() OVERRIDE { |
if (!database()->DumpQuotaTable( |
new TableCallback( |
@@ -1058,6 +1115,7 @@ class QuotaManager::DumpQuotaTableTask |
callback_.Run(TableEntries()); |
} |
+ // DatabaseTaskBase: |
virtual void DatabaseTaskCompleted() OVERRIDE { |
callback_.Run(entries_); |
} |
@@ -1088,7 +1146,11 @@ class QuotaManager::DumpOriginInfoTableTask |
: DatabaseTaskBase(manager), |
callback_(callback) { |
} |
+ |
protected: |
+ virtual ~DumpOriginInfoTableTask() {} |
+ |
+ // QuotaThreadTask: |
virtual void RunOnTargetThread() OVERRIDE { |
if (!database()->DumpOriginInfoTable( |
new TableCallback( |
@@ -1100,6 +1162,7 @@ class QuotaManager::DumpOriginInfoTableTask |
callback_.Run(TableEntries()); |
} |
+ // DatabaseTaskBase: |
virtual void DatabaseTaskCompleted() OVERRIDE { |
callback_.Run(entries_); |
} |
@@ -1136,14 +1199,6 @@ QuotaManager::QuotaManager(bool is_incognito, |
weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { |
} |
-QuotaManager::~QuotaManager() { |
- proxy_->manager_ = NULL; |
- std::for_each(clients_.begin(), clients_.end(), |
- std::mem_fun(&QuotaClient::OnQuotaManagerDestroyed)); |
- if (database_.get()) |
- db_thread_->DeleteSoon(FROM_HERE, database_.release()); |
-} |
- |
void QuotaManager::GetUsageInfo(const GetUsageInfoCallback& callback) { |
LazyInitialize(); |
GetUsageInfoTask* get_usage_info = new GetUsageInfoTask(this, callback); |
@@ -1274,6 +1329,14 @@ void QuotaManager::GetOriginsModifiedSince(StorageType type, |
this, type, modified_since, callback))->Start(); |
} |
+QuotaManager::~QuotaManager() { |
+ proxy_->manager_ = NULL; |
+ std::for_each(clients_.begin(), clients_.end(), |
+ std::mem_fun(&QuotaClient::OnQuotaManagerDestroyed)); |
+ if (database_.get()) |
+ db_thread_->DeleteSoon(FROM_HERE, database_.release()); |
+} |
+ |
void QuotaManager::LazyInitialize() { |
DCHECK(io_thread_->BelongsToCurrentThread()); |
if (database_.get()) { |