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); |