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

Unified Diff: webkit/browser/quota/quota_manager.cc

Issue 218793002: Provide monitoring of usage for a storage type and origin (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 9 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/browser/quota/quota_manager.cc
diff --git a/webkit/browser/quota/quota_manager.cc b/webkit/browser/quota/quota_manager.cc
index a7e466ece8b00aacc477bd7c0cce2c7cde7f2ab9..05a9ba23acfcd66d51fe17f3d09fc795489f7782 100644
--- a/webkit/browser/quota/quota_manager.cc
+++ b/webkit/browser/quota/quota_manager.cc
@@ -26,6 +26,7 @@
#include "webkit/browser/quota/quota_database.h"
#include "webkit/browser/quota/quota_manager_proxy.h"
#include "webkit/browser/quota/quota_temporary_storage_evictor.h"
+#include "webkit/browser/quota/storage_monitor.h"
#include "webkit/browser/quota/usage_tracker.h"
#include "webkit/common/quota/quota_types.h"
@@ -808,6 +809,7 @@ QuotaManager::QuotaManager(bool is_incognito,
desired_available_space_(-1),
special_storage_policy_(special_storage_policy),
get_disk_space_fn_(&CallSystemGetAmountOfFreeDiskSpace),
+ storage_monitor_(new StorageMonitor(this)),
weak_factory_(this) {
}
@@ -1159,15 +1161,18 @@ bool QuotaManager::ResetUsageTracker(StorageType type) {
switch (type) {
case kStorageTypeTemporary:
temporary_usage_tracker_.reset(new UsageTracker(
- clients_, kStorageTypeTemporary, special_storage_policy_.get()));
+ clients_, kStorageTypeTemporary, special_storage_policy_.get(),
+ storage_monitor_.get()));
return true;
case kStorageTypePersistent:
persistent_usage_tracker_.reset(new UsageTracker(
- clients_, kStorageTypePersistent, special_storage_policy_.get()));
+ clients_, kStorageTypePersistent, special_storage_policy_.get(),
+ storage_monitor_.get()));
return true;
case kStorageTypeSyncable:
syncable_usage_tracker_.reset(new UsageTracker(
- clients_, kStorageTypeSyncable, special_storage_policy_.get()));
+ clients_, kStorageTypeSyncable, special_storage_policy_.get(),
+ storage_monitor_.get()));
return true;
default:
NOTREACHED();
@@ -1175,6 +1180,23 @@ bool QuotaManager::ResetUsageTracker(StorageType type) {
return true;
}
+void QuotaManager::AddStorageObserver(
+ StorageObserver* observer, const StorageObserver::MonitorParams& params) {
+ DCHECK(observer);
+ storage_monitor_->AddObserver(observer, params);
+}
+
+void QuotaManager::RemoveStorageObserver(StorageObserver* observer) {
+ DCHECK(observer);
+ storage_monitor_->RemoveObserver(observer);
+}
+
+void QuotaManager::RemoveStorageObserverForFilter(
+ StorageObserver* observer, const StorageObserver::Filter& filter) {
+ DCHECK(observer);
+ storage_monitor_->RemoveObserverForFilter(observer, filter);
+}
+
QuotaManager::~QuotaManager() {
proxy_->manager_ = NULL;
std::for_each(clients_.begin(), clients_.end(),
@@ -1202,11 +1224,14 @@ void QuotaManager::LazyInitialize() {
profile_path_.AppendASCII(kDatabaseName)));
temporary_usage_tracker_.reset(new UsageTracker(
- clients_, kStorageTypeTemporary, special_storage_policy_.get()));
+ clients_, kStorageTypeTemporary, special_storage_policy_.get(),
+ storage_monitor_.get()));
persistent_usage_tracker_.reset(new UsageTracker(
- clients_, kStorageTypePersistent, special_storage_policy_.get()));
+ clients_, kStorageTypePersistent, special_storage_policy_.get(),
+ storage_monitor_.get()));
syncable_usage_tracker_.reset(new UsageTracker(
- clients_, kStorageTypeSyncable, special_storage_policy_.get()));
+ clients_, kStorageTypeSyncable, special_storage_policy_.get(),
+ storage_monitor_.get()));
int64* temporary_quota_override = new int64(-1);
int64* desired_available_space = new int64(-1);

Powered by Google App Engine
This is Rietveld 408576698