Index: webkit/quota/quota_manager.cc |
diff --git a/webkit/quota/quota_manager.cc b/webkit/quota/quota_manager.cc |
index 5b417fa06878a1ffd499e6e4c7673765c3620507..99f64497c5e1784397a17ba3b32fc74050053e5b 100644 |
--- a/webkit/quota/quota_manager.cc |
+++ b/webkit/quota/quota_manager.cc |
@@ -15,7 +15,6 @@ |
#include "base/memory/ref_counted.h" |
#include "base/message_loop_proxy.h" |
#include "base/metrics/histogram.h" |
-#include "base/stl_util.h" |
#include "base/string_number_conversions.h" |
#include "base/sys_info.h" |
#include "base/time.h" |
@@ -30,8 +29,6 @@ |
(name), static_cast<int>((sample) / kMBytes), \ |
1, 10 * 1024 * 1024 /* 10TB */, 100) |
-using base::ScopedCallbackFactory; |
- |
namespace quota { |
namespace { |
@@ -76,24 +73,22 @@ const int QuotaManager::kEvictionIntervalInMilliSeconds = |
// Callback translators. |
void CallGetUsageAndQuotaCallback( |
- QuotaManager::GetUsageAndQuotaCallback* callback, |
+ const QuotaManager::GetUsageAndQuotaCallback& callback, |
bool unlimited, |
QuotaStatusCode status, |
const QuotaAndUsage& quota_and_usage) { |
int64 usage = |
unlimited ? quota_and_usage.unlimited_usage : quota_and_usage.usage; |
int64 quota = unlimited ? kint64max : quota_and_usage.quota; |
- callback->Run(status, usage, quota); |
- delete callback; |
+ callback.Run(status, usage, quota); |
} |
void CallQuotaCallback( |
- QuotaCallback* callback, |
+ const QuotaCallback& callback, |
StorageType type, |
QuotaStatusCode status, |
const QuotaAndUsage& quota_and_usage) { |
- callback->Run(status, type, quota_and_usage.quota); |
- delete callback; |
+ callback.Run(status, type, quota_and_usage.quota); |
} |
// This class is for posting GetUsage/GetQuota tasks, gathering |
@@ -171,7 +166,7 @@ class QuotaManager::UsageAndQuotaDispatcherTask : public QuotaTask { |
available_space_(-1), |
quota_status_(kQuotaStatusUnknown), |
waiting_callbacks_(1), |
- ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)) {} |
+ weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {} |
virtual ~UsageAndQuotaDispatcherTask() {} |
@@ -246,27 +241,28 @@ class QuotaManager::UsageAndQuotaDispatcherTask : public QuotaTask { |
// Subclasses must call following methods to create a new 'waitable' |
// callback, which decrements waiting_callbacks when it is called. |
- GlobalUsageCallback* NewWaitableGlobalUsageCallback() { |
+ GlobalUsageCallback NewWaitableGlobalUsageCallback() { |
++waiting_callbacks_; |
- return callback_factory_.NewCallback( |
- &UsageAndQuotaDispatcherTask::DidGetGlobalUsage); |
+ return base::Bind(&UsageAndQuotaDispatcherTask::DidGetGlobalUsage, |
+ weak_factory_.GetWeakPtr()); |
} |
- HostUsageCallback* NewWaitableHostUsageCallback() { |
+ HostUsageCallback NewWaitableHostUsageCallback() { |
++waiting_callbacks_; |
- return callback_factory_.NewCallback( |
- &UsageAndQuotaDispatcherTask::DidGetHostUsage); |
+ return base::Bind(&UsageAndQuotaDispatcherTask::DidGetHostUsage, |
+ weak_factory_.GetWeakPtr()); |
} |
- HostQuotaCallback* NewWaitableHostQuotaCallback() { |
+ HostQuotaCallback NewWaitableHostQuotaCallback() { |
++waiting_callbacks_; |
- return callback_factory_.NewCallback( |
- &UsageAndQuotaDispatcherTask::DidGetHostQuota); |
+ return base::Bind(&UsageAndQuotaDispatcherTask::DidGetHostQuota, |
+ weak_factory_.GetWeakPtr()); |
} |
- AvailableSpaceCallback* NewWaitableAvailableSpaceCallback() { |
+ AvailableSpaceCallback NewWaitableAvailableSpaceCallback() { |
++waiting_callbacks_; |
- return callback_factory_.NewCallback( |
- &UsageAndQuotaDispatcherTask::DidGetAvailableSpace); |
+ return base::Bind(&UsageAndQuotaDispatcherTask::DidGetAvailableSpace, |
+ weak_factory_.GetWeakPtr()); |
} |
+ |
private: |
void CheckCompleted() { |
if (--waiting_callbacks_ <= 0) { |
@@ -292,7 +288,7 @@ class QuotaManager::UsageAndQuotaDispatcherTask : public QuotaTask { |
QuotaStatusCode quota_status_; |
CallbackList callbacks_; |
int waiting_callbacks_; |
- ScopedCallbackFactory<UsageAndQuotaDispatcherTask> callback_factory_; |
+ base::WeakPtrFactory<UsageAndQuotaDispatcherTask> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(UsageAndQuotaDispatcherTask); |
}; |
@@ -304,28 +300,30 @@ class QuotaManager::GetUsageInfoTask : public QuotaTask { |
public: |
GetUsageInfoTask( |
QuotaManager* manager, |
- GetUsageInfoCallback* callback) |
+ const GetUsageInfoCallback& callback) |
: QuotaTask(manager), |
callback_(callback), |
- ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)) { |
+ weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { |
} |
protected: |
virtual void Run() OVERRIDE { |
remaining_trackers_ = 2; |
// This will populate cached hosts and usage info. |
manager()->GetUsageTracker(kStorageTypeTemporary)->GetGlobalUsage( |
- callback_factory_.NewCallback(&GetUsageInfoTask::DidGetGlobalUsage)); |
+ base::Bind(&GetUsageInfoTask::DidGetGlobalUsage, |
+ weak_factory_.GetWeakPtr())); |
manager()->GetUsageTracker(kStorageTypePersistent)->GetGlobalUsage( |
- callback_factory_.NewCallback(&GetUsageInfoTask::DidGetGlobalUsage)); |
+ base::Bind(&GetUsageInfoTask::DidGetGlobalUsage, |
+ weak_factory_.GetWeakPtr())); |
} |
virtual void Completed() OVERRIDE { |
- callback_->Run(entries_); |
+ callback_.Run(entries_); |
DeleteSoon(); |
} |
virtual void Aborted() OVERRIDE { |
- callback_->Run(UsageInfoEntries()); |
+ callback_.Run(UsageInfoEntries()); |
DeleteSoon(); |
} |
@@ -350,9 +348,9 @@ class QuotaManager::GetUsageInfoTask : public QuotaTask { |
return static_cast<QuotaManager*>(observer()); |
} |
- scoped_ptr<GetUsageInfoCallback> callback_; |
+ GetUsageInfoCallback callback_; |
UsageInfoEntries entries_; |
- base::ScopedCallbackFactory<GetUsageInfoTask> callback_factory_; |
+ base::WeakPtrFactory<GetUsageInfoTask> weak_factory_; |
int remaining_trackers_; |
DISALLOW_COPY_AND_ASSIGN(GetUsageInfoTask); |
@@ -464,14 +462,14 @@ class QuotaManager::OriginDataDeleter : public QuotaTask { |
OriginDataDeleter(QuotaManager* manager, |
const GURL& origin, |
StorageType type, |
- StatusCallback* callback) |
+ const StatusCallback& callback) |
: QuotaTask(manager), |
origin_(origin), |
type_(type), |
error_count_(0), |
remaining_clients_(-1), |
callback_(callback), |
- ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)) {} |
+ weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {} |
protected: |
virtual void Run() OVERRIDE { |
@@ -479,23 +477,25 @@ class QuotaManager::OriginDataDeleter : public QuotaTask { |
remaining_clients_ = manager()->clients_.size(); |
for (QuotaClientList::iterator iter = manager()->clients_.begin(); |
iter != manager()->clients_.end(); ++iter) { |
- (*iter)->DeleteOriginData(origin_, type_, callback_factory_.NewCallback( |
- &OriginDataDeleter::DidDeleteOriginData)); |
+ (*iter)->DeleteOriginData( |
+ origin_, type_, |
+ base::Bind(&OriginDataDeleter::DidDeleteOriginData, |
+ weak_factory_.GetWeakPtr())); |
} |
} |
virtual void Completed() OVERRIDE { |
if (error_count_ == 0) { |
manager()->DeleteOriginFromDatabase(origin_, type_); |
- callback_->Run(kQuotaStatusOk); |
+ callback_.Run(kQuotaStatusOk); |
} else { |
- callback_->Run(kQuotaErrorInvalidModification); |
+ callback_.Run(kQuotaErrorInvalidModification); |
} |
DeleteSoon(); |
} |
virtual void Aborted() OVERRIDE { |
- callback_->Run(kQuotaErrorAbort); |
+ callback_.Run(kQuotaErrorAbort); |
DeleteSoon(); |
} |
@@ -517,9 +517,9 @@ class QuotaManager::OriginDataDeleter : public QuotaTask { |
StorageType type_; |
int error_count_; |
int remaining_clients_; |
- scoped_ptr<StatusCallback> callback_; |
+ StatusCallback callback_; |
- ScopedCallbackFactory<OriginDataDeleter> callback_factory_; |
+ base::WeakPtrFactory<OriginDataDeleter> weak_factory_; |
DISALLOW_COPY_AND_ASSIGN(OriginDataDeleter); |
}; |
@@ -592,7 +592,7 @@ class QuotaManager::UpdateTemporaryQuotaOverrideTask |
UpdateTemporaryQuotaOverrideTask( |
QuotaManager* manager, |
int64 new_quota, |
- QuotaCallback* callback) |
+ const QuotaCallback& callback) |
: DatabaseTaskBase(manager), |
new_quota_(new_quota), |
callback_(callback) {} |
@@ -618,14 +618,14 @@ class QuotaManager::UpdateTemporaryQuotaOverrideTask |
private: |
void CallCallback(QuotaStatusCode status, StorageType type, int64 quota) { |
- if (callback_.get()) { |
- callback_->Run(status, type, quota); |
- callback_.reset(); |
+ if (!callback_.is_null()) { |
+ callback_.Run(status, type, quota); |
+ callback_.Reset(); |
} |
} |
int64 new_quota_; |
- scoped_ptr<QuotaCallback> callback_; |
+ QuotaCallback callback_; |
}; |
class QuotaManager::GetPersistentHostQuotaTask |
@@ -634,7 +634,7 @@ class QuotaManager::GetPersistentHostQuotaTask |
GetPersistentHostQuotaTask( |
QuotaManager* manager, |
const std::string& host, |
- HostQuotaCallback* callback) |
+ const HostQuotaCallback& callback) |
: DatabaseTaskBase(manager), |
host_(host), |
quota_(-1), |
@@ -646,13 +646,13 @@ class QuotaManager::GetPersistentHostQuotaTask |
quota_ = 0; |
} |
virtual void DatabaseTaskCompleted() OVERRIDE { |
- callback_->Run(kQuotaStatusOk, |
- host_, kStorageTypePersistent, quota_); |
+ callback_.Run(kQuotaStatusOk, |
+ host_, kStorageTypePersistent, quota_); |
} |
private: |
std::string host_; |
int64 quota_; |
- scoped_ptr<HostQuotaCallback> callback_; |
+ HostQuotaCallback callback_; |
}; |
class QuotaManager::UpdatePersistentHostQuotaTask |
@@ -662,7 +662,7 @@ class QuotaManager::UpdatePersistentHostQuotaTask |
QuotaManager* manager, |
const std::string& host, |
int new_quota, |
- HostQuotaCallback* callback) |
+ const HostQuotaCallback& callback) |
: DatabaseTaskBase(manager), |
host_(host), |
new_quota_(new_quota), |
@@ -678,18 +678,18 @@ class QuotaManager::UpdatePersistentHostQuotaTask |
} |
virtual void DatabaseTaskCompleted() OVERRIDE { |
- callback_->Run(db_disabled() ? kQuotaErrorInvalidAccess : kQuotaStatusOk, |
- host_, kStorageTypePersistent, new_quota_); |
+ callback_.Run(db_disabled() ? kQuotaErrorInvalidAccess : kQuotaStatusOk, |
+ host_, kStorageTypePersistent, new_quota_); |
} |
virtual void Aborted() OVERRIDE { |
- callback_.reset(); |
+ callback_.Reset(); |
} |
private: |
std::string host_; |
int64 new_quota_; |
- scoped_ptr<HostQuotaCallback> callback_; |
+ HostQuotaCallback callback_; |
}; |
class QuotaManager::GetLRUOriginTask |
@@ -804,7 +804,7 @@ class QuotaManager::AvailableSpaceQueryTask : public QuotaThreadTask { |
public: |
AvailableSpaceQueryTask( |
QuotaManager* manager, |
- AvailableSpaceCallback* callback) |
+ const AvailableSpaceCallback& callback) |
: QuotaThreadTask(manager, manager->db_thread_), |
profile_path_(manager->profile_path_), |
space_(-1), |
@@ -818,17 +818,17 @@ class QuotaManager::AvailableSpaceQueryTask : public QuotaThreadTask { |
} |
virtual void Aborted() OVERRIDE { |
- callback_.reset(); |
+ callback_.Reset(); |
} |
virtual void Completed() OVERRIDE { |
- callback_->Run(kQuotaStatusOk, space_); |
+ callback_.Run(kQuotaStatusOk, space_); |
} |
private: |
FilePath profile_path_; |
int64 space_; |
- scoped_ptr<AvailableSpaceCallback> callback_; |
+ AvailableSpaceCallback callback_; |
}; |
class QuotaManager::UpdateAccessTimeTask |
@@ -893,7 +893,7 @@ class QuotaManager::GetModifiedSinceTask |
QuotaManager* manager, |
StorageType type, |
base::Time modified_since, |
- GetOriginsCallback* callback) |
+ GetOriginsCallback callback) |
: DatabaseTaskBase(manager), |
type_(type), |
modified_since_(modified_since), |
@@ -908,18 +908,18 @@ class QuotaManager::GetModifiedSinceTask |
} |
virtual void DatabaseTaskCompleted() OVERRIDE { |
- callback_->Run(origins_, type_); |
+ callback_.Run(origins_, type_); |
} |
virtual void Aborted() OVERRIDE { |
- callback_->Run(std::set<GURL>(), type_); |
+ callback_.Run(std::set<GURL>(), type_); |
} |
private: |
StorageType type_; |
base::Time modified_since_; |
std::set<GURL> origins_; |
- scoped_ptr<GetOriginsCallback> callback_; |
+ GetOriginsCallback callback_; |
}; |
class QuotaManager::DumpQuotaTableTask |
@@ -934,7 +934,7 @@ class QuotaManager::DumpQuotaTableTask |
public: |
DumpQuotaTableTask( |
QuotaManager* manager, |
- Callback* callback) |
+ const Callback& callback) |
: DatabaseTaskBase(manager), |
callback_(callback) { |
} |
@@ -947,11 +947,11 @@ class QuotaManager::DumpQuotaTableTask |
} |
virtual void Aborted() OVERRIDE { |
- callback_->Run(TableEntries()); |
+ callback_.Run(TableEntries()); |
} |
virtual void DatabaseTaskCompleted() OVERRIDE { |
- callback_->Run(entries_); |
+ callback_.Run(entries_); |
} |
private: |
@@ -960,7 +960,7 @@ class QuotaManager::DumpQuotaTableTask |
return true; |
} |
- scoped_ptr<Callback> callback_; |
+ Callback callback_; |
TableEntries entries_; |
}; |
@@ -976,7 +976,7 @@ class QuotaManager::DumpOriginInfoTableTask |
public: |
DumpOriginInfoTableTask( |
QuotaManager* manager, |
- Callback* callback) |
+ const Callback& callback) |
: DatabaseTaskBase(manager), |
callback_(callback) { |
} |
@@ -989,11 +989,11 @@ class QuotaManager::DumpOriginInfoTableTask |
} |
virtual void Aborted() OVERRIDE { |
- callback_->Run(TableEntries()); |
+ callback_.Run(TableEntries()); |
} |
virtual void DatabaseTaskCompleted() OVERRIDE { |
- callback_->Run(entries_); |
+ callback_.Run(entries_); |
} |
private: |
@@ -1002,7 +1002,7 @@ class QuotaManager::DumpOriginInfoTableTask |
return true; |
} |
- scoped_ptr<Callback> callback_; |
+ Callback callback_; |
TableEntries entries_; |
}; |
@@ -1025,8 +1025,7 @@ QuotaManager::QuotaManager(bool is_incognito, |
temporary_quota_override_(-1), |
desired_available_space_(-1), |
special_storage_policy_(special_storage_policy), |
- ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)), |
- ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) { |
+ weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) { |
} |
QuotaManager::~QuotaManager() { |
@@ -1038,7 +1037,7 @@ QuotaManager::~QuotaManager() { |
db_thread_->DeleteSoon(FROM_HERE, database_.release()); |
} |
-void QuotaManager::GetUsageInfo(GetUsageInfoCallback* callback) { |
+void QuotaManager::GetUsageInfo(const GetUsageInfoCallback& callback) { |
LazyInitialize(); |
GetUsageInfoTask* get_usage_info = new GetUsageInfoTask(this, callback); |
get_usage_info->Start(); |
@@ -1046,26 +1045,24 @@ void QuotaManager::GetUsageInfo(GetUsageInfoCallback* callback) { |
void QuotaManager::GetUsageAndQuota( |
const GURL& origin, StorageType type, |
- GetUsageAndQuotaCallback* callback) { |
+ const GetUsageAndQuotaCallback& callback) { |
GetUsageAndQuotaInternal(origin, type, false /* global */, |
base::Bind(&CallGetUsageAndQuotaCallback, |
callback, IsStorageUnlimited(origin))); |
} |
-void QuotaManager::GetAvailableSpace(AvailableSpaceCallback* callback) { |
+void QuotaManager::GetAvailableSpace(const AvailableSpaceCallback& callback) { |
if (is_incognito_) { |
- callback->Run(kQuotaStatusOk, kIncognitoDefaultTemporaryQuota); |
- delete callback; |
+ callback.Run(kQuotaStatusOk, kIncognitoDefaultTemporaryQuota); |
return; |
} |
make_scoped_refptr(new AvailableSpaceQueryTask(this, callback))->Start(); |
} |
-void QuotaManager::GetTemporaryGlobalQuota(QuotaCallback* callback) { |
+void QuotaManager::GetTemporaryGlobalQuota(const QuotaCallback& callback) { |
if (temporary_quota_override_ > 0) { |
- callback->Run(kQuotaStatusOk, kStorageTypeTemporary, |
- temporary_quota_override_); |
- delete callback; |
+ callback.Run(kQuotaStatusOk, kStorageTypeTemporary, |
+ temporary_quota_override_); |
return; |
} |
GetUsageAndQuotaInternal( |
@@ -1074,80 +1071,77 @@ void QuotaManager::GetTemporaryGlobalQuota(QuotaCallback* callback) { |
} |
void QuotaManager::SetTemporaryGlobalOverrideQuota( |
- int64 new_quota, QuotaCallback* callback_ptr) { |
- scoped_ptr<QuotaCallback> callback(callback_ptr); |
+ int64 new_quota, const QuotaCallback& callback) { |
LazyInitialize(); |
if (new_quota < 0) { |
- if (callback.get()) |
- callback->Run(kQuotaErrorInvalidModification, |
- kStorageTypeTemporary, -1); |
+ if (!callback.is_null()) |
+ callback.Run(kQuotaErrorInvalidModification, |
+ kStorageTypeTemporary, -1); |
return; |
} |
if (db_disabled_) { |
- if (callback.get()) |
- callback->Run(kQuotaErrorInvalidAccess, |
- kStorageTypeTemporary, -1); |
+ if (callback.is_null()) |
+ callback.Run(kQuotaErrorInvalidAccess, |
+ kStorageTypeTemporary, -1); |
return; |
} |
make_scoped_refptr(new UpdateTemporaryQuotaOverrideTask( |
- this, new_quota, callback.release()))->Start(); |
+ this, new_quota, callback))->Start(); |
} |
void QuotaManager::GetPersistentHostQuota(const std::string& host, |
- HostQuotaCallback* callback_ptr) { |
- scoped_ptr<HostQuotaCallback> callback(callback_ptr); |
+ const HostQuotaCallback& callback) { |
LazyInitialize(); |
if (host.empty()) { |
// This could happen if we are called on file:///. |
// TODO(kinuko) We may want to respect --allow-file-access-from-files |
// command line switch. |
- callback->Run(kQuotaStatusOk, host, kStorageTypePersistent, 0); |
+ callback.Run(kQuotaStatusOk, host, kStorageTypePersistent, 0); |
return; |
} |
scoped_refptr<GetPersistentHostQuotaTask> task( |
- new GetPersistentHostQuotaTask(this, host, callback.release())); |
+ new GetPersistentHostQuotaTask(this, host, callback)); |
task->Start(); |
} |
void QuotaManager::SetPersistentHostQuota(const std::string& host, |
int64 new_quota, |
- HostQuotaCallback* callback_ptr) { |
- scoped_ptr<HostQuotaCallback> callback(callback_ptr); |
+ const HostQuotaCallback& callback) { |
LazyInitialize(); |
if (host.empty()) { |
// This could happen if we are called on file:///. |
- callback->Run(kQuotaErrorNotSupported, host, kStorageTypePersistent, 0); |
+ callback.Run(kQuotaErrorNotSupported, host, kStorageTypePersistent, 0); |
return; |
} |
if (new_quota < 0) { |
- callback->Run(kQuotaErrorInvalidModification, |
- host, kStorageTypePersistent, -1); |
+ callback.Run(kQuotaErrorInvalidModification, |
+ host, kStorageTypePersistent, -1); |
return; |
} |
if (!db_disabled_) { |
scoped_refptr<UpdatePersistentHostQuotaTask> task( |
new UpdatePersistentHostQuotaTask( |
- this, host, new_quota, callback.release())); |
+ this, host, new_quota, callback)); |
task->Start(); |
} else { |
- callback->Run(kQuotaErrorInvalidAccess, |
+ callback.Run(kQuotaErrorInvalidAccess, |
host, kStorageTypePersistent, -1); |
} |
} |
-void QuotaManager::GetGlobalUsage( |
- StorageType type, |
- GlobalUsageCallback* callback) { |
+void QuotaManager::GetGlobalUsage(StorageType type, |
+ const GlobalUsageCallback& callback) { |
LazyInitialize(); |
GetUsageTracker(type)->GetGlobalUsage(callback); |
} |
-void QuotaManager::GetHostUsage(const std::string& host, StorageType type, |
- HostUsageCallback* callback) { |
+void QuotaManager::GetHostUsage(const std::string& host, |
+ StorageType type, |
+ const HostUsageCallback& callback) { |
LazyInitialize(); |
GetUsageTracker(type)->GetHostUsage(host, callback); |
} |
@@ -1165,10 +1159,9 @@ void QuotaManager::GetStatistics( |
} |
} |
-void QuotaManager::GetOriginsModifiedSince( |
- StorageType type, |
- base::Time modified_since, |
- GetOriginsCallback* callback) { |
+void QuotaManager::GetOriginsModifiedSince(StorageType type, |
+ base::Time modified_since, |
+ const GetOriginsCallback& callback) { |
LazyInitialize(); |
make_scoped_refptr(new GetModifiedSinceTask( |
this, type, modified_since, callback))->Start(); |
@@ -1228,12 +1221,11 @@ void QuotaManager::NotifyOriginNoLongerInUse(const GURL& origin) { |
} |
void QuotaManager::DeleteOriginData( |
- const GURL& origin, StorageType type, StatusCallback* callback) { |
+ const GURL& origin, StorageType type, const StatusCallback& callback) { |
LazyInitialize(); |
if (origin.is_empty() || clients_.empty()) { |
- callback->Run(kQuotaStatusOk); |
- delete callback; |
+ callback.Run(kQuotaStatusOk); |
return; |
} |
@@ -1363,12 +1355,12 @@ void QuotaManager::GetUsageAndQuotaInternal( |
} |
} |
-void QuotaManager::DumpQuotaTable(DumpQuotaTableCallback* callback) { |
+void QuotaManager::DumpQuotaTable(const DumpQuotaTableCallback& callback) { |
make_scoped_refptr(new DumpQuotaTableTask(this, callback))->Start(); |
} |
void QuotaManager::DumpOriginInfoTable( |
- DumpOriginInfoTableCallback* callback) { |
+ const DumpOriginInfoTableCallback& callback) { |
make_scoped_refptr(new DumpOriginInfoTableTask(this, callback))->Start(); |
} |
@@ -1402,8 +1394,7 @@ void QuotaManager::GetLRUOrigin( |
task->Start(); |
} |
-void QuotaManager::DidOriginDataEvicted( |
- QuotaStatusCode status) { |
+void QuotaManager::DidOriginDataEvicted(QuotaStatusCode status) { |
DCHECK(io_thread_->BelongsToCurrentThread()); |
// We only try evict origins that are not in use, so basically |
@@ -1413,23 +1404,24 @@ void QuotaManager::DidOriginDataEvicted( |
if (status != kQuotaStatusOk) |
origins_in_error_[eviction_context_.evicted_origin]++; |
- eviction_context_.evict_origin_data_callback->Run(status); |
- eviction_context_.evict_origin_data_callback.reset(); |
+ eviction_context_.evict_origin_data_callback.Run(status); |
+ eviction_context_.evict_origin_data_callback.Reset(); |
} |
void QuotaManager::EvictOriginData( |
const GURL& origin, |
StorageType type, |
- EvictOriginDataCallback* callback) { |
+ const EvictOriginDataCallback& callback) { |
DCHECK(io_thread_->BelongsToCurrentThread()); |
DCHECK_EQ(type, kStorageTypeTemporary); |
eviction_context_.evicted_origin = origin; |
eviction_context_.evicted_type = type; |
- eviction_context_.evict_origin_data_callback.reset(callback); |
+ eviction_context_.evict_origin_data_callback = callback; |
- DeleteOriginData(origin, type, callback_factory_.NewCallback( |
- &QuotaManager::DidOriginDataEvicted)); |
+ DeleteOriginData(origin, type, |
+ base::Bind(&QuotaManager::DidOriginDataEvicted, |
+ weak_factory_.GetWeakPtr())); |
} |
void QuotaManager::GetUsageAndQuotaForEviction( |
@@ -1451,11 +1443,13 @@ void QuotaManager::StartEviction() { |
void QuotaManager::ReportHistogram() { |
GetGlobalUsage(kStorageTypeTemporary, |
- callback_factory_.NewCallback( |
- &QuotaManager::DidGetTemporaryGlobalUsageForHistogram)); |
+ base::Bind( |
+ &QuotaManager::DidGetTemporaryGlobalUsageForHistogram, |
+ weak_factory_.GetWeakPtr())); |
GetGlobalUsage(kStorageTypePersistent, |
- callback_factory_.NewCallback( |
- &QuotaManager::DidGetPersistentGlobalUsageForHistogram)); |
+ base::Bind( |
+ &QuotaManager::DidGetPersistentGlobalUsageForHistogram, |
+ weak_factory_.GetWeakPtr())); |
} |
void QuotaManager::DidGetTemporaryGlobalUsageForHistogram( |
@@ -1523,8 +1517,9 @@ void QuotaManager::DidRunInitializeTask() { |
// Kick the first GetTemporaryGlobalQuota. This internally fetches (and |
// caches) the usage of all origins and checks the available disk space. |
- GetTemporaryGlobalQuota(callback_factory_.NewCallback( |
- &QuotaManager::DidGetInitialTemporaryGlobalQuota)); |
+ GetTemporaryGlobalQuota( |
+ base::Bind(&QuotaManager::DidGetInitialTemporaryGlobalQuota, |
+ weak_factory_.GetWeakPtr())); |
} |
void QuotaManager::DidGetInitialTemporaryGlobalQuota( |