summaryrefslogtreecommitdiffstats
path: root/webkit/appcache/appcache_update_job.cc
diff options
context:
space:
mode:
Diffstat (limited to 'webkit/appcache/appcache_update_job.cc')
-rw-r--r--webkit/appcache/appcache_update_job.cc12
1 files changed, 3 insertions, 9 deletions
diff --git a/webkit/appcache/appcache_update_job.cc b/webkit/appcache/appcache_update_job.cc
index b1cf778..7887ee1 100644
--- a/webkit/appcache/appcache_update_job.cc
+++ b/webkit/appcache/appcache_update_job.cc
@@ -557,17 +557,15 @@ void AppCacheUpdateJob::OnManifestDataWriteComplete(int result) {
void AppCacheUpdateJob::CompleteInprogressCache() {
inprogress_cache_->set_update_time(base::TimeTicks::Now());
inprogress_cache_->set_complete(true);
-
- protect_former_newest_cache_ = group_->newest_complete_cache();
- group_->AddCache(inprogress_cache_);
+ service_->storage()->StoreGroupAndNewestCache(group_, inprogress_cache_,
+ this); // async
protect_new_cache_.swap(inprogress_cache_);
-
- service_->storage()->StoreGroupAndNewestCache(group_, this); // async
}
void AppCacheUpdateJob::OnGroupAndNewestCacheStored(AppCacheGroup* group,
bool success) {
if (success) {
+ DCHECK_EQ(protect_new_cache_, group->newest_complete_cache());
if (update_type_ == CACHE_ATTEMPT)
NotifyAllAssociatedHosts(CACHED_EVENT);
else
@@ -575,15 +573,11 @@ void AppCacheUpdateJob::OnGroupAndNewestCacheStored(AppCacheGroup* group,
internal_state_ = COMPLETED;
MaybeCompleteUpdate(); // will definitely complete
} else {
- // TODO(jennb): Change storage so clients won't need to revert group state?
- // Change group back to reflect former newest group.
- group_->RestoreCacheAsNewest(protect_former_newest_cache_);
protect_new_cache_ = NULL;
// Treat storage failure as if manifest refetch failed.
HandleManifestRefetchFailure();
}
- protect_former_newest_cache_ = NULL;
}
void AppCacheUpdateJob::HandleManifestRefetchFailure() {