Index: components/browsing_data/storage_partition_http_cache_data_remover.h |
diff --git a/components/browsing_data/storage_partition_http_cache_data_remover.h b/components/browsing_data/storage_partition_http_cache_data_remover.h |
index eb9f575fae82478e918e5dd139d979ad09137f6b..40143e3b5abf75c40a3ba562c6e1a45e26012de9 100644 |
--- a/components/browsing_data/storage_partition_http_cache_data_remover.h |
+++ b/components/browsing_data/storage_partition_http_cache_data_remover.h |
@@ -8,6 +8,7 @@ |
#include "base/callback.h" |
#include "base/sequenced_task_runner_helpers.h" |
#include "base/time/time.h" |
+#include "net/base/completion_callback.h" |
namespace content { |
class StoragePartition; |
@@ -34,13 +35,17 @@ class StoragePartitionHttpCacheDataRemover { |
// Calls |done_callback| upon completion and also destroys itself. |
void Remove(const base::Closure& done_callback); |
+ // Counts the total size of entries that would be removed by calling |Remove|. |
+ // Reports it via |result_callback| and then destroys itself. |
+ void Count(const net::Int64CompletionCallback& result_callback); |
+ |
private: |
enum CacheState { |
STATE_NONE, |
STATE_CREATE_MAIN, |
STATE_CREATE_MEDIA, |
- STATE_DELETE_MAIN, |
- STATE_DELETE_MEDIA, |
+ STATE_PROCESS_MAIN, |
+ STATE_PROCESS_MEDIA, |
STATE_DONE |
}; |
@@ -58,9 +63,14 @@ class StoragePartitionHttpCacheDataRemover { |
~StoragePartitionHttpCacheDataRemover(); |
void ClearHttpCacheOnIOThread(); |
+ void CountHttpCacheOnIOThread(); |
+ |
void ClearedHttpCache(); |
- // Performs the actual work to delete the cache. |
+ void CountedHttpCache(); |
+ |
+ // Performs the actual work to delete or count the cache. |
void DoClearCache(int rv); |
+ void DoCountCache(int rv); |
const base::Time delete_begin_; |
const base::Time delete_end_; |
@@ -69,11 +79,17 @@ class StoragePartitionHttpCacheDataRemover { |
const scoped_refptr<net::URLRequestContextGetter> media_context_getter_; |
base::Closure done_callback_; |
+ net::Int64CompletionCallback result_callback_; |
// IO. |
int next_cache_state_; |
disk_cache::Backend* cache_; |
+ // Stores the cache size computation result before it can be returned |
+ // via a callback. This is either the sum of size of the the two cache |
+ // backends, or an error code if the calculation failed. |
+ int64 calculation_result_; |
+ |
DISALLOW_COPY_AND_ASSIGN(StoragePartitionHttpCacheDataRemover); |
}; |