diff options
Diffstat (limited to 'webkit/appcache/appcache_working_set.cc')
-rw-r--r-- | webkit/appcache/appcache_working_set.cc | 16 |
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()); |