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