diff options
author | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-09 00:09:21 +0000 |
---|---|---|
committer | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-09 00:09:21 +0000 |
commit | 3367fc1dd134eeaf9ab6e62397f05ad3964319fe (patch) | |
tree | 78fb4d7ac912bbaf47b64f0aaefef331906b5fca /webkit/appcache/appcache_host.cc | |
parent | 9f9e1fcbbd52267fa657b3b0b80ece683ceb6dd6 (diff) | |
download | chromium_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.cc | 29 |
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); |