summaryrefslogtreecommitdiffstats
path: root/webkit/appcache/appcache_working_set.cc
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/appcache/appcache_working_set.cc')
-rw-r--r--webkit/appcache/appcache_working_set.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/webkit/appcache/appcache_working_set.cc b/webkit/appcache/appcache_working_set.cc
index 652116c..1c3f40b 100644
--- a/webkit/appcache/appcache_working_set.cc
+++ b/webkit/appcache/appcache_working_set.cc
@@ -17,7 +17,19 @@ AppCacheWorkingSet::~AppCacheWorkingSet() {
DCHECK(groups_by_origin_.empty());
}
+void AppCacheWorkingSet::Disable() {
+ if (is_disabled_)
+ return;
+ is_disabled_ = true;
+ caches_.clear();
+ groups_.clear();
+ groups_by_origin_.clear();
+ response_infos_.clear();
+}
+
void AppCacheWorkingSet::AddCache(AppCache* cache) {
+ if (is_disabled_)
+ return;
DCHECK(cache->cache_id() != kNoCacheId);
int64 cache_id = cache->cache_id();
DCHECK(caches_.find(cache_id) == caches_.end());
@@ -29,6 +41,8 @@ void AppCacheWorkingSet::RemoveCache(AppCache* cache) {
}
void AppCacheWorkingSet::AddGroup(AppCacheGroup* group) {
+ if (is_disabled_)
+ return;
const GURL& url = group->manifest_url();
DCHECK(groups_.find(url) == groups_.end());
groups_.insert(GroupMap::value_type(url, group));
@@ -49,6 +63,8 @@ void AppCacheWorkingSet::RemoveGroup(AppCacheGroup* group) {
}
void AppCacheWorkingSet::AddResponseInfo(AppCacheResponseInfo* info) {
+ if (is_disabled_)
+ return;
DCHECK(info->response_id() != kNoResponseId);
int64 response_id = info->response_id();
DCHECK(response_infos_.find(response_id) == response_infos_.end());