| Index: webkit/quota/quota_manager.cc
|
| diff --git a/webkit/quota/quota_manager.cc b/webkit/quota/quota_manager.cc
|
| index 2e2db357f7c43231c0af6b7de76e9e4ef0df770a..740a46a44f014f7a55bc3034f0c8d0646bbe6750 100644
|
| --- a/webkit/quota/quota_manager.cc
|
| +++ b/webkit/quota/quota_manager.cc
|
| @@ -15,6 +15,7 @@
|
| #include "base/sys_info.h"
|
| #include "net/base/net_util.h"
|
| #include "webkit/quota/quota_database.h"
|
| +#include "webkit/quota/quota_temporary_storage_evictor.h"
|
| #include "webkit/quota/quota_types.h"
|
| #include "webkit/quota/usage_tracker.h"
|
|
|
| @@ -454,6 +455,7 @@ QuotaManager::~QuotaManager() {
|
| std::mem_fun(&QuotaClient::OnQuotaManagerDestroyed));
|
| if (database_.get())
|
| db_thread_->DeleteSoon(FROM_HERE, database_.release());
|
| +// TODO(dmikurube): Evictor::OnQuotaManagerDestroyedOnIOThread() appropriately.
|
| }
|
|
|
| void QuotaManager::GetUsageAndQuota(
|
| @@ -580,10 +582,16 @@ void QuotaManager::LazyInitialize() {
|
| new UsageTracker(clients_, kStorageTypeTemporary));
|
| persistent_usage_tracker_.reset(
|
| new UsageTracker(clients_, kStorageTypePersistent));
|
| + // TODO(dmikurube): Change this hard-coded 3 seconds.
|
| + // TODO(dmikurube): This init. could be delayed until InitializeTask finishes.
|
| + temporary_storage_evictor_ = new QuotaTemporaryStorageEvictor(
|
| + this, database_.get(), 3000, io_thread_, db_thread_);
|
|
|
| scoped_refptr<InitializeTask> task(
|
| new InitializeTask(this, database_.get(), db_thread_, profile_path_));
|
| task->Start();
|
| +
|
| + temporary_storage_evictor_->Start();
|
| }
|
|
|
| void QuotaManager::RegisterClient(QuotaClient* client) {
|
| @@ -601,6 +609,39 @@ void QuotaManager::NotifyStorageModified(
|
| tracker->UpdateUsageCache(client_id, origin, delta);
|
| }
|
|
|
| +void QuotaManager::DeleteOriginDataOnIOThread(
|
| + const GURL& origin,
|
| + StorageType type,
|
| + DeleteOriginDataCallback* callback) {
|
| + LazyInitialize();
|
| + LOG(ERROR) << "QM::DeleteOriginDataOnIOThread";
|
| + // TODO(dmikurube): Delete data of the |origin|.
|
| + /*
|
| + ++num_deleted_clients_;
|
| + DCHECK(num_deleted_clients_ <= num_clients_);
|
| + if (num_deleted_clients_ == num_clients_) {
|
| + if (is_deletion_failed_) {
|
| + // TODO(dmikurube): Should try ignoring the failed origin?
|
| + }
|
| +
|
| + if (false ) { // More deletion required?
|
| + // Delete another origin.
|
| + db_message_loop_->PostTask(FROM_HERE, NewRunnableMethod(
|
| + this, &QuotaTemporaryStorageEvictor::Evict));
|
| + } else {
|
| + // Post the next task.
|
| + db_message_loop_->PostDelayedTask(FROM_HERE, NewRunnableMethod(
|
| + this, &QuotaTemporaryStorageEvictor::Evict), delay_ms_);
|
| + }
|
| + num_clients_ = 0;
|
| + num_deleted_clients_ = 0;
|
| + is_deletion_failed_ = false;
|
| + }
|
| + */
|
| + callback->Run(kQuotaStatusOk);
|
| + delete callback;
|
| +}
|
| +
|
| UsageTracker* QuotaManager::GetUsageTracker(StorageType type) const {
|
| switch (type) {
|
| case kStorageTypeTemporary:
|
|
|