Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(567)

Side by Side Diff: webkit/browser/quota/quota_manager.cc

Issue 59753008: Quota: Add proxy for QuotaManager::GetUsageAndQuota (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: SingleThreadTaskRunner -> SequencedTaskRunner Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « webkit/browser/quota/quota_manager.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "webkit/browser/quota/quota_manager.h" 5 #include "webkit/browser/quota/quota_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <deque> 8 #include <deque>
9 #include <functional> 9 #include <functional>
10 #include <set> 10 #include <set>
(...skipping 25 matching lines...) Expand all
36 namespace quota { 36 namespace quota {
37 37
38 namespace { 38 namespace {
39 39
40 const int64 kMBytes = 1024 * 1024; 40 const int64 kMBytes = 1024 * 1024;
41 const int kMinutesInMilliSeconds = 60 * 1000; 41 const int kMinutesInMilliSeconds = 60 * 1000;
42 42
43 const int64 kReportHistogramInterval = 60 * 60 * 1000; // 1 hour 43 const int64 kReportHistogramInterval = 60 * 60 * 1000; // 1 hour
44 const double kTemporaryQuotaRatioToAvail = 1.0 / 3.0; // 33% 44 const double kTemporaryQuotaRatioToAvail = 1.0 / 3.0; // 33%
45 45
46 void DidGetUsageAndQuota(
47 base::SequencedTaskRunner* original_task_runner,
48 const QuotaManagerProxy::GetUsageAndQuotaCallback& callback,
49 QuotaStatusCode status, int64 usage, int64 quota) {
50 if (!original_task_runner->RunsTasksOnCurrentThread()) {
51 original_task_runner->PostTask(
52 FROM_HERE,
53 base::Bind(&DidGetUsageAndQuota,
54 make_scoped_refptr(original_task_runner),
55 callback, status, usage, quota));
56 return;
57 }
58 callback.Run(status, usage, quota);
59 }
60
46 } // namespace 61 } // namespace
47 62
48 // Arbitrary for now, but must be reasonably small so that 63 // Arbitrary for now, but must be reasonably small so that
49 // in-memory databases can fit. 64 // in-memory databases can fit.
50 // TODO(kinuko): Refer SysInfo::AmountOfPhysicalMemory() to determine this. 65 // TODO(kinuko): Refer SysInfo::AmountOfPhysicalMemory() to determine this.
51 const int64 QuotaManager::kIncognitoDefaultQuotaLimit = 100 * kMBytes; 66 const int64 QuotaManager::kIncognitoDefaultQuotaLimit = 100 * kMBytes;
52 67
53 const int64 QuotaManager::kNoLimit = kint64max; 68 const int64 QuotaManager::kNoLimit = kint64max;
54 69
55 const int QuotaManager::kPerHostTemporaryPortion = 5; // 20% 70 const int QuotaManager::kPerHostTemporaryPortion = 5; // 20%
(...skipping 1617 matching lines...) Expand 10 before | Expand all | Expand 10 after
1673 io_thread_->PostTask( 1688 io_thread_->PostTask(
1674 FROM_HERE, 1689 FROM_HERE,
1675 base::Bind(&QuotaManagerProxy::SetUsageCacheEnabled, this, 1690 base::Bind(&QuotaManagerProxy::SetUsageCacheEnabled, this,
1676 client_id, origin, type, enabled)); 1691 client_id, origin, type, enabled));
1677 return; 1692 return;
1678 } 1693 }
1679 if (manager_) 1694 if (manager_)
1680 manager_->SetUsageCacheEnabled(client_id, origin, type, enabled); 1695 manager_->SetUsageCacheEnabled(client_id, origin, type, enabled);
1681 } 1696 }
1682 1697
1698 void QuotaManagerProxy::GetUsageAndQuota(
1699 base::SequencedTaskRunner* original_task_runner,
1700 const GURL& origin,
1701 StorageType type,
1702 const GetUsageAndQuotaCallback& callback) {
1703 if (!io_thread_->BelongsToCurrentThread()) {
1704 io_thread_->PostTask(
1705 FROM_HERE,
1706 base::Bind(&QuotaManagerProxy::GetUsageAndQuota, this,
1707 make_scoped_refptr(original_task_runner),
1708 origin, type, callback));
1709 return;
1710 }
1711 if (!manager_) {
1712 DidGetUsageAndQuota(original_task_runner, callback, kQuotaErrorAbort, 0, 0);
1713 return;
1714 }
1715 manager_->GetUsageAndQuota(
1716 origin, type,
1717 base::Bind(&DidGetUsageAndQuota,
1718 make_scoped_refptr(original_task_runner), callback));
1719 }
1720
1683 QuotaManager* QuotaManagerProxy::quota_manager() const { 1721 QuotaManager* QuotaManagerProxy::quota_manager() const {
1684 DCHECK(!io_thread_.get() || io_thread_->BelongsToCurrentThread()); 1722 DCHECK(!io_thread_.get() || io_thread_->BelongsToCurrentThread());
1685 return manager_; 1723 return manager_;
1686 } 1724 }
1687 1725
1688 QuotaManagerProxy::QuotaManagerProxy( 1726 QuotaManagerProxy::QuotaManagerProxy(
1689 QuotaManager* manager, base::SingleThreadTaskRunner* io_thread) 1727 QuotaManager* manager, base::SingleThreadTaskRunner* io_thread)
1690 : manager_(manager), io_thread_(io_thread) { 1728 : manager_(manager), io_thread_(io_thread) {
1691 } 1729 }
1692 1730
1693 QuotaManagerProxy::~QuotaManagerProxy() { 1731 QuotaManagerProxy::~QuotaManagerProxy() {
1694 } 1732 }
1695 1733
1696 } // namespace quota 1734 } // namespace quota
OLDNEW
« no previous file with comments | « webkit/browser/quota/quota_manager.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698