diff options
author | dmikurube@chromium.org <dmikurube@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-17 09:15:49 +0000 |
---|---|---|
committer | dmikurube@chromium.org <dmikurube@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-17 09:15:49 +0000 |
commit | c506b2ffc55ff26990d4b90aa0cfaa0cd70703c3 (patch) | |
tree | 3a4dc88d6d0b2dfa376858798efcddf3c106db20 /webkit/quota | |
parent | fdf96b7c42e088d1585460f4f1a85f0d04b21941 (diff) | |
download | chromium_src-c506b2ffc55ff26990d4b90aa0cfaa0cd70703c3.zip chromium_src-c506b2ffc55ff26990d4b90aa0cfaa0cd70703c3.tar.gz chromium_src-c506b2ffc55ff26990d4b90aa0cfaa0cd70703c3.tar.bz2 |
Add an interface QuotaEvictionHandler.
BUG=61676
TEST=none
Review URL: http://codereview.chromium.org/7029009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85613 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/quota')
-rw-r--r-- | webkit/quota/quota_manager.cc | 40 | ||||
-rw-r--r-- | webkit/quota/quota_manager.h | 37 |
2 files changed, 61 insertions, 16 deletions
diff --git a/webkit/quota/quota_manager.cc b/webkit/quota/quota_manager.cc index 832d8e4..01f9c75 100644 --- a/webkit/quota/quota_manager.cc +++ b/webkit/quota/quota_manager.cc @@ -690,20 +690,6 @@ void QuotaManager::NotifyOriginNoLongerInUse(const GURL& origin) { origins_in_use_.erase(origin); } -void QuotaManager::GetLRUOrigin( - StorageType type, - GetLRUOriginCallback* callback) { - LazyInitialize(); - if (db_disabled_) { - callback->Run(GURL()); - delete callback; - return; - } - scoped_refptr<GetLRUOriginTask> task(new GetLRUOriginTask( - this, database_.get(), db_thread_, type, origins_in_use_, callback)); - task->Start(); -} - UsageTracker* QuotaManager::GetUsageTracker(StorageType type) const { switch (type) { case kStorageTypeTemporary: @@ -735,6 +721,32 @@ void QuotaManager::DeleteOriginFromDatabase( task->Start(); } +void QuotaManager::GetLRUOrigin( + StorageType type, + GetLRUOriginCallback* callback) { + LazyInitialize(); + if (db_disabled_) { + callback->Run(GURL()); + delete callback; + return; + } + scoped_refptr<GetLRUOriginTask> task(new GetLRUOriginTask( + this, database_.get(), db_thread_, type, origins_in_use_, callback)); + task->Start(); +} + +void QuotaManager::EvictOriginData( + const GURL& origin, + StorageType type, + EvictOriginDataCallback* callback) { + // TODO(dmikurube): Implement it. +} + +void QuotaManager::GetUsageAndQuotaForEviction( + GetUsageAndQuotaForEvictionCallback* callback) { + // TODO(dmikurube): Implement it. +} + void QuotaManager::DeleteOnCorrectThread() const { if (!io_thread_->BelongsToCurrentThread()) { io_thread_->DeleteSoon(FROM_HERE, this); diff --git a/webkit/quota/quota_manager.h b/webkit/quota/quota_manager.h index 955cab5..e3375cc 100644 --- a/webkit/quota/quota_manager.h +++ b/webkit/quota/quota_manager.h @@ -34,10 +34,35 @@ class UsageTracker; struct QuotaManagerDeleter; class QuotaManagerProxy; +// An interface called by QuotaTemporaryStorageEvictor. +class QuotaEvictionHandler { + public: + typedef Callback1<GURL>::Type GetLRUOriginCallback; + typedef Callback1<QuotaStatusCode>::Type EvictOriginDataCallback; + typedef Callback4<QuotaStatusCode, + int64 /* usage */, + int64 /* quota */, + int64 /* physical_available */ >::Type + GetUsageAndQuotaForEvictionCallback; + + virtual void GetLRUOrigin( + StorageType type, + GetLRUOriginCallback* callback) = 0; + + virtual void EvictOriginData( + const GURL& origin, + StorageType type, + EvictOriginDataCallback* callback) = 0; + + virtual void GetUsageAndQuotaForEviction( + GetUsageAndQuotaForEvictionCallback* callback) = 0; +}; + // The quota manager class. This class is instantiated per profile and // held by the profile. With the exception of the constructor and the // proxy() method, all methods should only be called on the IO thread. class QuotaManager : public QuotaTaskObserver, + public QuotaEvictionHandler, public base::RefCountedThreadSafe< QuotaManager, QuotaManagerDeleter> { public: @@ -46,7 +71,6 @@ class QuotaManager : public QuotaTaskObserver, int64 /* quota */>::Type GetUsageAndQuotaCallback; typedef Callback2<QuotaStatusCode, int64 /* granted_quota */>::Type RequestQuotaCallback; - typedef Callback1<GURL>::Type GetLRUOriginCallback; QuotaManager(bool is_incognito, const FilePath& profile_path, @@ -150,7 +174,16 @@ class QuotaManager : public QuotaTaskObserver, // Methods for eviction logic. void DeleteOriginFromDatabase(const GURL& origin, StorageType type); - void GetLRUOrigin(StorageType type, GetLRUOriginCallback* callback); + + virtual void GetLRUOrigin( + StorageType type, + GetLRUOriginCallback* callback) OVERRIDE; + virtual void EvictOriginData( + const GURL& origin, + StorageType type, + EvictOriginDataCallback* callback) OVERRIDE; + virtual void GetUsageAndQuotaForEviction( + GetUsageAndQuotaForEvictionCallback* callback) OVERRIDE; void DeleteOnCorrectThread() const; |