summaryrefslogtreecommitdiffstats
path: root/webkit/appcache/appcache_host.cc
diff options
context:
space:
mode:
authormichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-09 00:09:21 +0000
committermichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-09 00:09:21 +0000
commit3367fc1dd134eeaf9ab6e62397f05ad3964319fe (patch)
tree78fb4d7ac912bbaf47b64f0aaefef331906b5fca /webkit/appcache/appcache_host.cc
parent9f9e1fcbbd52267fa657b3b0b80ece683ceb6dd6 (diff)
downloadchromium_src-3367fc1dd134eeaf9ab6e62397f05ad3964319fe.zip
chromium_src-3367fc1dd134eeaf9ab6e62397f05ad3964319fe.tar.gz
chromium_src-3367fc1dd134eeaf9ab6e62397f05ad3964319fe.tar.bz2
AppCache changes to the networking model. Added new classes AppCacheRequestHandler and AppCacheURLRequestJob.
TEST=appcache_url_request_job_unittest.cc, appcache_request_handler_unittest.cc BUG=none Review URL: http://codereview.chromium.org/338034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31411 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/appcache/appcache_host.cc')
-rw-r--r--webkit/appcache/appcache_host.cc29
1 files changed, 20 insertions, 9 deletions
diff --git a/webkit/appcache/appcache_host.cc b/webkit/appcache/appcache_host.cc
index 9266fd5..c91f221 100644
--- a/webkit/appcache/appcache_host.cc
+++ b/webkit/appcache/appcache_host.cc
@@ -68,7 +68,7 @@ void AppCacheHost::SelectCache(const GURL& document_url,
// step is skipped here. See WebApplicationCacheHostImpl.cc
if (cache_document_was_loaded_from != kNoCacheId) {
- LoadCache(cache_document_was_loaded_from);
+ LoadSelectedCache(cache_document_was_loaded_from);
return;
}
@@ -176,9 +176,9 @@ AppCacheRequestHandler* AppCacheHost::CreateRequestHandler(
return new AppCacheRequestHandler(this, true);
if ((associated_cache() && associated_cache()->is_complete()) ||
- is_selection_pending())
+ is_selection_pending()) {
return new AppCacheRequestHandler(this, false);
-
+ }
return NULL;
}
@@ -201,19 +201,20 @@ void AppCacheHost::OnGroupLoaded(AppCacheGroup* group,
FinishCacheSelection(NULL, group);
}
-void AppCacheHost::LoadCache(int64 cache_id) {
+void AppCacheHost::LoadSelectedCache(int64 cache_id) {
DCHECK(cache_id != kNoCacheId);
pending_selected_cache_id_ = cache_id;
service_->storage()->LoadCache(cache_id, this);
}
void AppCacheHost::OnCacheLoaded(AppCache* cache, int64 cache_id) {
- DCHECK(cache_id == pending_selected_cache_id_);
- pending_selected_cache_id_ = kNoCacheId;
- if (cache)
+ if (cache_id == pending_main_resource_cache_id_) {
+ pending_main_resource_cache_id_ = kNoCacheId;
+ main_resource_cache_ = cache;
+ } else if (cache_id == pending_selected_cache_id_) {
+ pending_selected_cache_id_ = kNoCacheId;
FinishCacheSelection(cache, NULL);
- else
- FinishCacheSelection(NULL, NULL);
+ }
}
void AppCacheHost::FinishCacheSelection(
@@ -281,6 +282,16 @@ void AppCacheHost::SetSwappableCache(AppCacheGroup* group) {
swappable_cache_ = NULL;
}
+void AppCacheHost::LoadMainResourceCache(int64 cache_id) {
+ DCHECK(cache_id != kNoCacheId);
+ if (pending_main_resource_cache_id_ == cache_id ||
+ (main_resource_cache_ && main_resource_cache_->cache_id() == cache_id)) {
+ return;
+ }
+ pending_main_resource_cache_id_ = cache_id;
+ service_->storage()->LoadCache(cache_id, this);
+}
+
void AppCacheHost::AssociateCache(AppCache* cache) {
if (associated_cache_.get()) {
associated_cache_->UnassociateHost(this);