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

Side by Side Diff: webkit/browser/quota/quota_manager.h

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: Fix test failures Created 6 years, 8 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 unified diff | Download patch
« no previous file with comments | « content/content_tests.gypi ('k') | webkit/browser/quota/quota_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef WEBKIT_BROWSER_QUOTA_QUOTA_MANAGER_H_ 5 #ifndef WEBKIT_BROWSER_QUOTA_QUOTA_MANAGER_H_
6 #define WEBKIT_BROWSER_QUOTA_QUOTA_MANAGER_H_ 6 #define WEBKIT_BROWSER_QUOTA_QUOTA_MANAGER_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <list> 9 #include <list>
10 #include <map> 10 #include <map>
11 #include <set> 11 #include <set>
12 #include <string> 12 #include <string>
13 #include <utility> 13 #include <utility>
14 #include <vector> 14 #include <vector>
15 15
16 #include "base/basictypes.h" 16 #include "base/basictypes.h"
17 #include "base/callback.h" 17 #include "base/callback.h"
18 #include "base/files/file_path.h" 18 #include "base/files/file_path.h"
19 #include "base/memory/ref_counted.h" 19 #include "base/memory/ref_counted.h"
20 #include "base/memory/scoped_ptr.h" 20 #include "base/memory/scoped_ptr.h"
21 #include "base/memory/weak_ptr.h" 21 #include "base/memory/weak_ptr.h"
22 #include "base/sequenced_task_runner_helpers.h" 22 #include "base/sequenced_task_runner_helpers.h"
23 #include "webkit/browser/quota/quota_callbacks.h" 23 #include "webkit/browser/quota/quota_callbacks.h"
24 #include "webkit/browser/quota/quota_client.h" 24 #include "webkit/browser/quota/quota_client.h"
25 #include "webkit/browser/quota/quota_database.h" 25 #include "webkit/browser/quota/quota_database.h"
26 #include "webkit/browser/quota/quota_task.h" 26 #include "webkit/browser/quota/quota_task.h"
27 #include "webkit/browser/quota/special_storage_policy.h" 27 #include "webkit/browser/quota/special_storage_policy.h"
28 #include "webkit/browser/quota/storage_observer.h"
28 #include "webkit/browser/webkit_storage_browser_export.h" 29 #include "webkit/browser/webkit_storage_browser_export.h"
29 30
30 namespace base { 31 namespace base {
31 class FilePath; 32 class FilePath;
32 class SequencedTaskRunner; 33 class SequencedTaskRunner;
33 class SingleThreadTaskRunner; 34 class SingleThreadTaskRunner;
34 } 35 }
35 36
36 namespace quota_internals { 37 namespace quota_internals {
37 class QuotaInternalsProxy; 38 class QuotaInternalsProxy;
38 } 39 }
39 40
40 namespace quota { 41 namespace quota {
41 42
42 class MockQuotaManager; 43 class MockQuotaManager;
43 class QuotaDatabase; 44 class QuotaDatabase;
44 class QuotaManagerProxy; 45 class QuotaManagerProxy;
45 class QuotaTemporaryStorageEvictor; 46 class QuotaTemporaryStorageEvictor;
47 class StorageMonitor;
46 class UsageTracker; 48 class UsageTracker;
47 49
48 struct QuotaManagerDeleter; 50 struct QuotaManagerDeleter;
49 51
50 struct WEBKIT_STORAGE_BROWSER_EXPORT UsageAndQuota { 52 struct WEBKIT_STORAGE_BROWSER_EXPORT UsageAndQuota {
51 int64 usage; 53 int64 usage;
52 int64 global_limited_usage; 54 int64 global_limited_usage;
53 int64 quota; 55 int64 quota;
54 int64 available_disk_space; 56 int64 available_disk_space;
55 57
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 return special_storage_policy_.get() && 220 return special_storage_policy_.get() &&
219 special_storage_policy_->CanQueryDiskSize(origin); 221 special_storage_policy_->CanQueryDiskSize(origin);
220 } 222 }
221 223
222 virtual void GetOriginsModifiedSince(StorageType type, 224 virtual void GetOriginsModifiedSince(StorageType type,
223 base::Time modified_since, 225 base::Time modified_since,
224 const GetOriginsCallback& callback); 226 const GetOriginsCallback& callback);
225 227
226 bool ResetUsageTracker(StorageType type); 228 bool ResetUsageTracker(StorageType type);
227 229
230 // Used to register/deregister observers that wish to monitor storage events.
231 void AddStorageObserver(StorageObserver* observer,
232 const StorageObserver::MonitorParams& params);
233 void RemoveStorageObserver(StorageObserver* observer);
234 void RemoveStorageObserverForFilter(StorageObserver* observer,
235 const StorageObserver::Filter& filter);
236
228 // Determines the portion of the temp pool that can be 237 // Determines the portion of the temp pool that can be
229 // utilized by a single host (ie. 5 for 20%). 238 // utilized by a single host (ie. 5 for 20%).
230 static const int kPerHostTemporaryPortion; 239 static const int kPerHostTemporaryPortion;
231 240
232 static const int64 kPerHostPersistentQuotaLimit; 241 static const int64 kPerHostPersistentQuotaLimit;
233 242
234 static const char kDatabaseName[]; 243 static const char kDatabaseName[];
235 244
236 static const int64 kMinimumPreserveForSystem; 245 static const int64 kMinimumPreserveForSystem;
237 246
(...skipping 12 matching lines...) Expand all
250 private: 259 private:
251 friend class base::DeleteHelper<QuotaManager>; 260 friend class base::DeleteHelper<QuotaManager>;
252 friend class base::RefCountedThreadSafe<QuotaManager, QuotaManagerDeleter>; 261 friend class base::RefCountedThreadSafe<QuotaManager, QuotaManagerDeleter>;
253 friend class MockQuotaManager; 262 friend class MockQuotaManager;
254 friend class MockStorageClient; 263 friend class MockStorageClient;
255 friend class quota_internals::QuotaInternalsProxy; 264 friend class quota_internals::QuotaInternalsProxy;
256 friend class QuotaManagerProxy; 265 friend class QuotaManagerProxy;
257 friend class QuotaManagerTest; 266 friend class QuotaManagerTest;
258 friend class QuotaTemporaryStorageEvictor; 267 friend class QuotaTemporaryStorageEvictor;
259 friend struct QuotaManagerDeleter; 268 friend struct QuotaManagerDeleter;
269 friend class StorageMonitorTest;
260 270
261 class GetUsageInfoTask; 271 class GetUsageInfoTask;
262 272
263 class OriginDataDeleter; 273 class OriginDataDeleter;
264 class HostDataDeleter; 274 class HostDataDeleter;
265 275
266 class GetModifiedSinceHelper; 276 class GetModifiedSinceHelper;
267 class DumpQuotaTableHelper; 277 class DumpQuotaTableHelper;
268 class DumpOriginInfoTableHelper; 278 class DumpOriginInfoTableHelper;
269 279
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 428
419 scoped_refptr<SpecialStoragePolicy> special_storage_policy_; 429 scoped_refptr<SpecialStoragePolicy> special_storage_policy_;
420 430
421 base::RepeatingTimer<QuotaManager> histogram_timer_; 431 base::RepeatingTimer<QuotaManager> histogram_timer_;
422 432
423 // Pointer to the function used to get the available disk space. This is 433 // Pointer to the function used to get the available disk space. This is
424 // overwritten by QuotaManagerTest in order to attain a deterministic reported 434 // overwritten by QuotaManagerTest in order to attain a deterministic reported
425 // value. The default value points to base::SysInfo::AmountOfFreeDiskSpace. 435 // value. The default value points to base::SysInfo::AmountOfFreeDiskSpace.
426 GetAvailableDiskSpaceFn get_disk_space_fn_; 436 GetAvailableDiskSpaceFn get_disk_space_fn_;
427 437
438 scoped_ptr<StorageMonitor> storage_monitor_;
439
428 base::WeakPtrFactory<QuotaManager> weak_factory_; 440 base::WeakPtrFactory<QuotaManager> weak_factory_;
429 441
430 DISALLOW_COPY_AND_ASSIGN(QuotaManager); 442 DISALLOW_COPY_AND_ASSIGN(QuotaManager);
431 }; 443 };
432 444
433 struct QuotaManagerDeleter { 445 struct QuotaManagerDeleter {
434 static void Destruct(const QuotaManager* manager) { 446 static void Destruct(const QuotaManager* manager) {
435 manager->DeleteOnCorrectThread(); 447 manager->DeleteOnCorrectThread();
436 } 448 }
437 }; 449 };
438 450
439 } // namespace quota 451 } // namespace quota
440 452
441 #endif // WEBKIT_BROWSER_QUOTA_QUOTA_MANAGER_H_ 453 #endif // WEBKIT_BROWSER_QUOTA_QUOTA_MANAGER_H_
OLDNEW
« no previous file with comments | « content/content_tests.gypi ('k') | webkit/browser/quota/quota_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698