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

Unified Diff: webkit/quota/quota_manager.cc

Issue 10826270: QuotaManager: Return the remaining free disk space as quota. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Cleanup 2. Created 8 years, 4 months 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 side-by-side diff with in-line comments
Download patch
Index: webkit/quota/quota_manager.cc
diff --git a/webkit/quota/quota_manager.cc b/webkit/quota/quota_manager.cc
index 0028cd38ab23b884b25b02b1d395be3cd538e624..94323a58db9479aa6e6baa2fb3c28a26cee4554d 100644
--- a/webkit/quota/quota_manager.cc
+++ b/webkit/quota/quota_manager.cc
@@ -77,11 +77,21 @@ const int QuotaManager::kEvictionIntervalInMilliSeconds =
void CallGetUsageAndQuotaCallback(
const QuotaManager::GetUsageAndQuotaCallback& callback,
bool unlimited,
+ bool is_installed_app,
QuotaStatusCode status,
const QuotaAndUsage& quota_and_usage) {
- int64 usage =
- unlimited ? quota_and_usage.unlimited_usage : quota_and_usage.usage;
- int64 quota = unlimited ? QuotaManager::kNoLimit : quota_and_usage.quota;
+ int64 usage;
+ int64 quota;
+
+ if (unlimited) {
+ usage = quota_and_usage.unlimited_usage;
+ quota = is_installed_app ? quota_and_usage.available_disk_space :
+ kint64max;
kinuko 2012/08/20 04:04:44 nit: kint64max -> kNoLimit since that's what we ch
James Hawkins 2012/08/22 18:51:36 Done.
+ } else {
+ usage = quota_and_usage.usage;
+ quota = quota_and_usage.quota;
+ }
+
callback.Run(status, usage, quota);
}
@@ -406,6 +416,7 @@ class QuotaManager::UsageAndQuotaDispatcherTaskForPersistent
host(), NewWaitableHostUsageCallback());
manager()->GetPersistentHostQuota(
host(), NewWaitableHostQuotaCallback());
+ manager()->GetAvailableSpace(NewWaitableAvailableSpaceCallback());
}
virtual void DispatchCallbacks() OVERRIDE {
@@ -957,6 +968,7 @@ class QuotaManager::AvailableSpaceQueryTask : public QuotaThreadTask {
: QuotaThreadTask(manager, manager->db_thread_),
profile_path_(manager->profile_path_),
space_(-1),
+ get_disk_space_fn_(manager->get_disk_space_fn_),
callback_(callback) {
kinuko 2012/08/20 04:04:44 nit: maybe DCHECK(get_disk_space_fn) here?
James Hawkins 2012/08/22 18:51:36 Done.
}
@@ -965,7 +977,7 @@ class QuotaManager::AvailableSpaceQueryTask : public QuotaThreadTask {
// QuotaThreadTask:
virtual void RunOnTargetThread() OVERRIDE {
- space_ = base::SysInfo::AmountOfFreeDiskSpace(profile_path_);
+ space_ = get_disk_space_fn_(profile_path_);
}
virtual void Aborted() OVERRIDE {
@@ -979,6 +991,7 @@ class QuotaManager::AvailableSpaceQueryTask : public QuotaThreadTask {
private:
FilePath profile_path_;
int64 space_;
+ GetAvailableDiskSpaceFn get_disk_space_fn_;
AvailableSpaceCallback callback_;
};
@@ -1200,7 +1213,8 @@ QuotaManager::QuotaManager(bool is_incognito,
temporary_quota_override_(-1),
desired_available_space_(-1),
special_storage_policy_(special_storage_policy),
- weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)) {
+ weak_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
+ get_disk_space_fn_(&base::SysInfo::AmountOfFreeDiskSpace) {
}
void QuotaManager::GetUsageInfo(const GetUsageInfoCallback& callback) {
@@ -1212,9 +1226,10 @@ void QuotaManager::GetUsageInfo(const GetUsageInfoCallback& callback) {
void QuotaManager::GetUsageAndQuota(
const GURL& origin, StorageType type,
const GetUsageAndQuotaCallback& callback) {
- GetUsageAndQuotaInternal(origin, type, false /* global */,
- base::Bind(&CallGetUsageAndQuotaCallback,
- callback, IsStorageUnlimited(origin)));
+ GetUsageAndQuotaInternal(
+ origin, type, false /* global */,
+ base::Bind(&CallGetUsageAndQuotaCallback, callback,
+ IsStorageUnlimited(origin), IsInstalledApp(origin)));
}
void QuotaManager::GetAvailableSpace(const AvailableSpaceCallback& callback) {

Powered by Google App Engine
This is Rietveld 408576698