Index: storage/browser/quota/quota_manager.cc |
diff --git a/storage/browser/quota/quota_manager.cc b/storage/browser/quota/quota_manager.cc |
index 7e3b6beb8b899e8d68e0cf1202e7056f0ca49a3c..abd72607e8fe58428a6e14ccc041678c127d4f31 100644 |
--- a/storage/browser/quota/quota_manager.cc |
+++ b/storage/browser/quota/quota_manager.cc |
@@ -6,6 +6,7 @@ |
#include <algorithm> |
#include <functional> |
+#include <limits> |
#include "base/bind.h" |
#include "base/bind_helpers.h" |
@@ -37,10 +38,10 @@ namespace storage { |
namespace { |
-const int64 kMBytes = 1024 * 1024; |
+const int64_t kMBytes = 1024 * 1024; |
const int kMinutesInMilliSeconds = 60 * 1000; |
-const int64 kReportHistogramInterval = 60 * 60 * 1000; // 1 hour |
+const int64_t kReportHistogramInterval = 60 * 60 * 1000; // 1 hour |
const double kTemporaryQuotaRatioToAvail = 1.0 / 3.0; // 33% |
} // namespace |
@@ -48,9 +49,9 @@ const double kTemporaryQuotaRatioToAvail = 1.0 / 3.0; // 33% |
// Arbitrary for now, but must be reasonably small so that |
// in-memory databases can fit. |
// TODO(kinuko): Refer SysInfo::AmountOfPhysicalMemory() to determine this. |
-const int64 QuotaManager::kIncognitoDefaultQuotaLimit = 100 * kMBytes; |
+const int64_t QuotaManager::kIncognitoDefaultQuotaLimit = 100 * kMBytes; |
-const int64 QuotaManager::kNoLimit = kint64max; |
+const int64_t QuotaManager::kNoLimit = INT64_MAX; |
const int QuotaManager::kPerHostTemporaryPortion = 5; // 20% |
@@ -58,7 +59,7 @@ const int QuotaManager::kPerHostTemporaryPortion = 5; // 20% |
// This is a bit lax value because the histogram says nothing about per-host |
// persistent storage usage and we determined by global persistent storage |
// usage that is less than 10GB for almost all users. |
-const int64 QuotaManager::kPerHostPersistentQuotaLimit = 10 * 1024 * kMBytes; |
+const int64_t QuotaManager::kPerHostPersistentQuotaLimit = 10 * 1024 * kMBytes; |
const char QuotaManager::kDatabaseName[] = "QuotaManager"; |
@@ -69,7 +70,7 @@ const int QuotaManager::kThresholdOfErrorsToBeBlacklisted = 3; |
// TODO(kinuko): This should be like 10% of the actual disk space. |
// For now we simply use a constant as getting the disk size needs |
// platform-dependent code. (http://crbug.com/178976) |
-int64 QuotaManager::kMinimumPreserveForSystem = 1024 * kMBytes; |
+int64_t QuotaManager::kMinimumPreserveForSystem = 1024 * kMBytes; |
const int QuotaManager::kEvictionIntervalInMilliSeconds = |
30 * kMinutesInMilliSeconds; |
@@ -84,7 +85,7 @@ const char QuotaManager::kEvictedOriginTimeSinceAccessHistogram[] = |
// Heuristics: assuming average cloud server allows a few Gigs storage |
// on the server side and the storage needs to be shared for user data |
// and by multiple apps. |
-int64 QuotaManager::kSyncableStorageDefaultHostQuota = 500 * kMBytes; |
+int64_t QuotaManager::kSyncableStorageDefaultHostQuota = 500 * kMBytes; |
namespace { |
@@ -108,7 +109,7 @@ void CountOriginType(const std::set<GURL>& origins, |
} |
} |
-bool SetTemporaryGlobalOverrideQuotaOnDBThread(int64* new_quota, |
+bool SetTemporaryGlobalOverrideQuotaOnDBThread(int64_t* new_quota, |
QuotaDatabase* database) { |
DCHECK(database); |
if (!database->SetQuotaConfigValue( |
@@ -120,7 +121,7 @@ bool SetTemporaryGlobalOverrideQuotaOnDBThread(int64* new_quota, |
} |
bool GetPersistentHostQuotaOnDBThread(const std::string& host, |
- int64* quota, |
+ int64_t* quota, |
QuotaDatabase* database) { |
DCHECK(database); |
database->GetHostQuota(host, kStorageTypePersistent, quota); |
@@ -128,7 +129,7 @@ bool GetPersistentHostQuotaOnDBThread(const std::string& host, |
} |
bool SetPersistentHostQuotaOnDBThread(const std::string& host, |
- int64* new_quota, |
+ int64_t* new_quota, |
QuotaDatabase* database) { |
DCHECK(database); |
if (database->SetHostQuota(host, kStorageTypePersistent, *new_quota)) |
@@ -137,8 +138,8 @@ bool SetPersistentHostQuotaOnDBThread(const std::string& host, |
return false; |
} |
-bool InitializeOnDBThread(int64* temporary_quota_override, |
- int64* desired_available_space, |
+bool InitializeOnDBThread(int64_t* temporary_quota_override, |
+ int64_t* desired_available_space, |
QuotaDatabase* database) { |
DCHECK(database); |
database->GetQuotaConfigValue(QuotaDatabase::kTemporaryQuotaOverrideKey, |
@@ -226,7 +227,7 @@ bool UpdateModifiedTimeOnDBThread(const GURL& origin, |
return database->SetOriginLastModifiedTime(origin, type, modified_time); |
} |
-int64 CallSystemGetAmountOfFreeDiskSpace(const base::FilePath& profile_path) { |
+int64_t CallSystemGetAmountOfFreeDiskSpace(const base::FilePath& profile_path) { |
// crbug.com/349708 |
TRACE_EVENT0("io", "CallSystemGetAmountOfFreeDiskSpace"); |
@@ -238,11 +239,12 @@ int64 CallSystemGetAmountOfFreeDiskSpace(const base::FilePath& profile_path) { |
return base::SysInfo::AmountOfFreeDiskSpace(profile_path); |
} |
-int64 CalculateTemporaryGlobalQuota(int64 global_limited_usage, |
- int64 available_space) { |
+int64_t CalculateTemporaryGlobalQuota(int64_t global_limited_usage, |
+ int64_t available_space) { |
DCHECK_GE(global_limited_usage, 0); |
- int64 avail_space = available_space; |
- if (avail_space < kint64max - global_limited_usage) { |
+ int64_t avail_space = available_space; |
+ if (avail_space < |
+ std::numeric_limits<int64_t>::max() - global_limited_usage) { |
// We basically calculate the temporary quota by |
// [available_space + space_used_for_temp] * kTempQuotaRatio, |
// but make sure we'll have no overflow. |
@@ -265,8 +267,9 @@ void DispatchTemporaryGlobalQuotaCallback( |
usage_and_quota.available_disk_space)); |
} |
-int64 CalculateQuotaWithDiskSpace( |
- int64 available_disk_space, int64 usage, int64 quota) { |
+int64_t CalculateQuotaWithDiskSpace(int64_t available_disk_space, |
+ int64_t usage, |
+ int64_t quota) { |
if (available_disk_space < QuotaManager::kMinimumPreserveForSystem) { |
LOG(WARNING) |
<< "Running out of disk space for profile." |
@@ -286,11 +289,11 @@ int64 CalculateQuotaWithDiskSpace( |
return quota; |
} |
-int64 CalculateTemporaryHostQuota(int64 host_usage, |
- int64 global_quota, |
- int64 global_limited_usage) { |
+int64_t CalculateTemporaryHostQuota(int64_t host_usage, |
+ int64_t global_quota, |
+ int64_t global_limited_usage) { |
DCHECK_GE(global_limited_usage, 0); |
- int64 host_quota = global_quota / QuotaManager::kPerHostTemporaryPortion; |
+ int64_t host_quota = global_quota / QuotaManager::kPerHostTemporaryPortion; |
if (global_limited_usage > global_quota) |
host_quota = std::min(host_quota, host_usage); |
return host_quota; |
@@ -309,8 +312,8 @@ void DispatchUsageAndQuotaForWebApps( |
return; |
} |
- int64 usage = usage_and_quota.usage; |
- int64 quota = usage_and_quota.quota; |
+ int64_t usage = usage_and_quota.usage; |
+ int64_t quota = usage_and_quota.quota; |
if (type == kStorageTypeTemporary && !is_unlimited) { |
quota = CalculateTemporaryHostQuota( |
@@ -348,16 +351,14 @@ UsageAndQuota::UsageAndQuota() |
available_disk_space(0) { |
} |
-UsageAndQuota::UsageAndQuota( |
- int64 usage, |
- int64 global_limited_usage, |
- int64 quota, |
- int64 available_disk_space) |
+UsageAndQuota::UsageAndQuota(int64_t usage, |
+ int64_t global_limited_usage, |
+ int64_t quota, |
+ int64_t available_disk_space) |
: usage(usage), |
global_limited_usage(global_limited_usage), |
quota(quota), |
- available_disk_space(available_disk_space) { |
-} |
+ available_disk_space(available_disk_space) {} |
class UsageAndQuotaCallbackDispatcher |
: public QuotaTask, |
@@ -380,22 +381,22 @@ class UsageAndQuotaCallbackDispatcher |
Start(); |
} |
- void set_usage(int64 usage) { |
+ void set_usage(int64_t usage) { |
usage_and_quota_.usage = usage; |
has_usage_ = true; |
} |
- void set_global_limited_usage(int64 global_limited_usage) { |
+ void set_global_limited_usage(int64_t global_limited_usage) { |
usage_and_quota_.global_limited_usage = global_limited_usage; |
has_global_limited_usage_ = true; |
} |
- void set_quota(int64 quota) { |
+ void set_quota(int64_t quota) { |
usage_and_quota_.quota = quota; |
has_quota_ = true; |
} |
- void set_available_disk_space(int64 available_disk_space) { |
+ void set_available_disk_space(int64_t available_disk_space) { |
usage_and_quota_.available_disk_space = available_disk_space; |
has_available_disk_space_ = true; |
} |
@@ -430,28 +431,28 @@ class UsageAndQuotaCallbackDispatcher |
} |
private: |
- void DidGetHostUsage(int64 usage) { |
+ void DidGetHostUsage(int64_t usage) { |
if (status_ == kQuotaStatusUnknown) |
status_ = kQuotaStatusOk; |
usage_and_quota_.usage = usage; |
CheckCompleted(); |
} |
- void DidGetGlobalLimitedUsage(int64 limited_usage) { |
+ void DidGetGlobalLimitedUsage(int64_t limited_usage) { |
if (status_ == kQuotaStatusUnknown) |
status_ = kQuotaStatusOk; |
usage_and_quota_.global_limited_usage = limited_usage; |
CheckCompleted(); |
} |
- void DidGetQuota(QuotaStatusCode status, int64 quota) { |
+ void DidGetQuota(QuotaStatusCode status, int64_t quota) { |
if (status_ == kQuotaStatusUnknown || status_ == kQuotaStatusOk) |
status_ = status; |
usage_and_quota_.quota = quota; |
CheckCompleted(); |
} |
- void DidGetAvailableSpace(QuotaStatusCode status, int64 space) { |
+ void DidGetAvailableSpace(QuotaStatusCode status, int64_t space) { |
// crbug.com/349708 |
TRACE_EVENT0( |
"io", "UsageAndQuotaCallbackDispatcher::DidGetAvailableSpace"); |
@@ -555,18 +556,18 @@ class QuotaManager::GetUsageInfoTask : public QuotaTask { |
private: |
void AddEntries(StorageType type, UsageTracker* tracker) { |
- std::map<std::string, int64> host_usage; |
+ std::map<std::string, int64_t> host_usage; |
tracker->GetCachedHostsUsage(&host_usage); |
- for (std::map<std::string, int64>::const_iterator iter = host_usage.begin(); |
- iter != host_usage.end(); |
- ++iter) { |
+ for (std::map<std::string, int64_t>::const_iterator iter = |
+ host_usage.begin(); |
+ iter != host_usage.end(); ++iter) { |
entries_.push_back(UsageInfo(iter->first, type, iter->second)); |
} |
if (--remaining_trackers_ == 0) |
CallCompleted(); |
} |
- void DidGetGlobalUsage(StorageType type, int64, int64) { |
+ void DidGetGlobalUsage(StorageType type, int64_t, int64_t) { |
DCHECK(manager()->GetUsageTracker(type)); |
AddEntries(type, manager()->GetUsageTracker(type)); |
} |
@@ -964,9 +965,10 @@ void QuotaManager::NotifyStorageAccessed( |
NotifyStorageAccessedInternal(client_id, origin, type, base::Time::Now()); |
} |
-void QuotaManager::NotifyStorageModified( |
- QuotaClient::ID client_id, |
- const GURL& origin, StorageType type, int64 delta) { |
+void QuotaManager::NotifyStorageModified(QuotaClient::ID client_id, |
+ const GURL& origin, |
+ StorageType type, |
+ int64_t delta) { |
DCHECK(origin == origin.GetOrigin()); |
NotifyStorageModifiedInternal(client_id, origin, type, delta, |
base::Time::Now()); |
@@ -1059,7 +1061,8 @@ void QuotaManager::GetTemporaryGlobalQuota(const QuotaCallback& callback) { |
} |
void QuotaManager::SetTemporaryGlobalOverrideQuota( |
- int64 new_quota, const QuotaCallback& callback) { |
+ int64_t new_quota, |
+ const QuotaCallback& callback) { |
LazyInitialize(); |
if (new_quota < 0) { |
@@ -1074,7 +1077,7 @@ void QuotaManager::SetTemporaryGlobalOverrideQuota( |
return; |
} |
- int64* new_quota_ptr = new int64(new_quota); |
+ int64_t* new_quota_ptr = new int64_t(new_quota); |
PostTaskAndReplyWithResultForDBThread( |
FROM_HERE, |
base::Bind(&SetTemporaryGlobalOverrideQuotaOnDBThread, |
@@ -1099,7 +1102,7 @@ void QuotaManager::GetPersistentHostQuota(const std::string& host, |
if (!persistent_host_quota_callbacks_.Add(host, callback)) |
return; |
- int64* quota_ptr = new int64(0); |
+ int64_t* quota_ptr = new int64_t(0); |
PostTaskAndReplyWithResultForDBThread( |
FROM_HERE, |
base::Bind(&GetPersistentHostQuotaOnDBThread, |
@@ -1112,7 +1115,7 @@ void QuotaManager::GetPersistentHostQuota(const std::string& host, |
} |
void QuotaManager::SetPersistentHostQuota(const std::string& host, |
- int64 new_quota, |
+ int64_t new_quota, |
const QuotaCallback& callback) { |
LazyInitialize(); |
if (host.empty()) { |
@@ -1136,7 +1139,7 @@ void QuotaManager::SetPersistentHostQuota(const std::string& host, |
return; |
} |
- int64* new_quota_ptr = new int64(new_quota); |
+ int64_t* new_quota_ptr = new int64_t(new_quota); |
PostTaskAndReplyWithResultForDBThread( |
FROM_HERE, |
base::Bind(&SetPersistentHostQuotaOnDBThread, |
@@ -1189,12 +1192,12 @@ void QuotaManager::GetStatistics( |
std::map<std::string, std::string>* statistics) { |
DCHECK(statistics); |
if (temporary_storage_evictor_) { |
- std::map<std::string, int64> stats; |
+ std::map<std::string, int64_t> stats; |
temporary_storage_evictor_->GetStatistics(&stats); |
- for (std::map<std::string, int64>::iterator p = stats.begin(); |
- p != stats.end(); |
- ++p) |
+ for (std::map<std::string, int64_t>::iterator p = stats.begin(); |
+ p != stats.end(); ++p) { |
(*statistics)[p->first] = base::Int64ToString(p->second); |
+ } |
} |
} |
@@ -1307,8 +1310,8 @@ void QuotaManager::LazyInitialize() { |
clients_, kStorageTypeSyncable, special_storage_policy_.get(), |
storage_monitor_.get())); |
- int64* temporary_quota_override = new int64(-1); |
- int64* desired_available_space = new int64(-1); |
+ int64_t* temporary_quota_override = new int64_t(-1); |
+ int64_t* desired_available_space = new int64_t(-1); |
PostTaskAndReplyWithResultForDBThread( |
FROM_HERE, |
base::Bind(&InitializeOnDBThread, |
@@ -1369,12 +1372,11 @@ void QuotaManager::NotifyStorageAccessedInternal( |
weak_factory_.GetWeakPtr())); |
} |
-void QuotaManager::NotifyStorageModifiedInternal( |
- QuotaClient::ID client_id, |
- const GURL& origin, |
- StorageType type, |
- int64 delta, |
- base::Time modified_time) { |
+void QuotaManager::NotifyStorageModifiedInternal(QuotaClient::ID client_id, |
+ const GURL& origin, |
+ StorageType type, |
+ int64_t delta, |
+ base::Time modified_time) { |
LazyInitialize(); |
DCHECK(GetUsageTracker(type)); |
GetUsageTracker(type)->UpdateUsageCache(client_id, origin, delta); |
@@ -1478,8 +1480,8 @@ void QuotaManager::ReportHistogram() { |
} |
void QuotaManager::DidGetTemporaryGlobalUsageForHistogram( |
- int64 usage, |
- int64 unlimited_usage) { |
+ int64_t usage, |
+ int64_t unlimited_usage) { |
UMA_HISTOGRAM_MBYTES("Quota.GlobalUsageOfTemporaryStorage", usage); |
std::set<GURL> origins; |
@@ -1502,8 +1504,8 @@ void QuotaManager::DidGetTemporaryGlobalUsageForHistogram( |
} |
void QuotaManager::DidGetPersistentGlobalUsageForHistogram( |
- int64 usage, |
- int64 unlimited_usage) { |
+ int64_t usage, |
+ int64_t unlimited_usage) { |
UMA_HISTOGRAM_MBYTES("Quota.GlobalUsageOfPersistentStorage", usage); |
std::set<GURL> origins; |
@@ -1558,7 +1560,7 @@ void QuotaManager::DidGetEvictionOrigin(const GetOriginCallback& callback, |
void QuotaManager::GetEvictionOrigin(StorageType type, |
const std::set<GURL>& extra_exceptions, |
- int64 global_quota, |
+ int64_t global_quota, |
const GetOriginCallback& callback) { |
LazyInitialize(); |
// This must not be called while there's an in-flight task. |
@@ -1570,7 +1572,7 @@ void QuotaManager::GetEvictionOrigin(StorageType type, |
weak_factory_.GetWeakPtr(), callback); |
if (type == kStorageTypeTemporary && temporary_storage_eviction_policy_) { |
- std::map<GURL, int64> usage_map; |
+ std::map<GURL, int64_t> usage_map; |
// The cached origins are populated by the prior call to |
// GetUsageAndQuotaForEviction(). |
GetUsageTracker(kStorageTypeTemporary)->GetCachedOriginsUsage(&usage_map); |
@@ -1641,7 +1643,7 @@ void QuotaManager::GetLRUOrigin(StorageType type, |
void QuotaManager::DidSetTemporaryGlobalOverrideQuota( |
const QuotaCallback& callback, |
- const int64* new_quota, |
+ const int64_t* new_quota, |
bool success) { |
QuotaStatusCode status = kQuotaErrorInvalidAccess; |
DidDatabaseWork(success); |
@@ -1657,7 +1659,7 @@ void QuotaManager::DidSetTemporaryGlobalOverrideQuota( |
} |
void QuotaManager::DidGetPersistentHostQuota(const std::string& host, |
- const int64* quota, |
+ const int64_t* quota, |
bool success) { |
DidDatabaseWork(success); |
persistent_host_quota_callbacks_.Run(host, kQuotaStatusOk, *quota); |
@@ -1665,14 +1667,14 @@ void QuotaManager::DidGetPersistentHostQuota(const std::string& host, |
void QuotaManager::DidSetPersistentHostQuota(const std::string& host, |
const QuotaCallback& callback, |
- const int64* new_quota, |
+ const int64_t* new_quota, |
bool success) { |
DidDatabaseWork(success); |
callback.Run(success ? kQuotaStatusOk : kQuotaErrorInvalidAccess, *new_quota); |
} |
-void QuotaManager::DidInitialize(int64* temporary_quota_override, |
- int64* desired_available_space, |
+void QuotaManager::DidInitialize(int64_t* temporary_quota_override, |
+ int64_t* desired_available_space, |
bool success) { |
temporary_quota_override_ = *temporary_quota_override; |
desired_available_space_ = *desired_available_space; |
@@ -1698,8 +1700,8 @@ void QuotaManager::DidGetLRUOrigin(const GURL* origin, |
lru_origin_callback_.Reset(); |
} |
-void QuotaManager::DidGetInitialTemporaryGlobalQuota( |
- QuotaStatusCode status, int64 quota_unused) { |
+void QuotaManager::DidGetInitialTemporaryGlobalQuota(QuotaStatusCode status, |
+ int64_t quota_unused) { |
if (eviction_disabled_) |
return; |
@@ -1721,7 +1723,7 @@ void QuotaManager::DidInitializeTemporaryOriginsInfo(bool success) { |
StartEviction(); |
} |
-void QuotaManager::DidGetAvailableSpace(int64 space) { |
+void QuotaManager::DidGetAvailableSpace(int64_t space) { |
// crbug.com/349708 |
TRACE_EVENT1("io", "QuotaManager::DidGetAvailableSpace", |
"n_callbacks", available_space_callbacks_.size()); |