| Index: webkit/browser/quota/quota_manager.cc
|
| diff --git a/webkit/browser/quota/quota_manager.cc b/webkit/browser/quota/quota_manager.cc
|
| index 5df4231713a32b031ec6ceba2413d6764e940597..123307ef034b7a7ebcbc58fd4b2b071dcb682e14 100644
|
| --- a/webkit/browser/quota/quota_manager.cc
|
| +++ b/webkit/browser/quota/quota_manager.cc
|
| @@ -43,6 +43,21 @@ const int kMinutesInMilliSeconds = 60 * 1000;
|
| const int64 kReportHistogramInterval = 60 * 60 * 1000; // 1 hour
|
| const double kTemporaryQuotaRatioToAvail = 1.0 / 3.0; // 33%
|
|
|
| +void DidGetUsageAndQuota(
|
| + base::SequencedTaskRunner* original_task_runner,
|
| + const QuotaManagerProxy::GetUsageAndQuotaCallback& callback,
|
| + QuotaStatusCode status, int64 usage, int64 quota) {
|
| + if (!original_task_runner->RunsTasksOnCurrentThread()) {
|
| + original_task_runner->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&DidGetUsageAndQuota,
|
| + make_scoped_refptr(original_task_runner),
|
| + callback, status, usage, quota));
|
| + return;
|
| + }
|
| + callback.Run(status, usage, quota);
|
| +}
|
| +
|
| } // namespace
|
|
|
| // Arbitrary for now, but must be reasonably small so that
|
| @@ -1680,6 +1695,29 @@ void QuotaManagerProxy::SetUsageCacheEnabled(QuotaClient::ID client_id,
|
| manager_->SetUsageCacheEnabled(client_id, origin, type, enabled);
|
| }
|
|
|
| +void QuotaManagerProxy::GetUsageAndQuota(
|
| + base::SequencedTaskRunner* original_task_runner,
|
| + const GURL& origin,
|
| + StorageType type,
|
| + const GetUsageAndQuotaCallback& callback) {
|
| + if (!io_thread_->BelongsToCurrentThread()) {
|
| + io_thread_->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&QuotaManagerProxy::GetUsageAndQuota, this,
|
| + make_scoped_refptr(original_task_runner),
|
| + origin, type, callback));
|
| + return;
|
| + }
|
| + if (!manager_) {
|
| + DidGetUsageAndQuota(original_task_runner, callback, kQuotaErrorAbort, 0, 0);
|
| + return;
|
| + }
|
| + manager_->GetUsageAndQuota(
|
| + origin, type,
|
| + base::Bind(&DidGetUsageAndQuota,
|
| + make_scoped_refptr(original_task_runner), callback));
|
| +}
|
| +
|
| QuotaManager* QuotaManagerProxy::quota_manager() const {
|
| DCHECK(!io_thread_.get() || io_thread_->BelongsToCurrentThread());
|
| return manager_;
|
|
|