Index: webkit/appcache/appcache_request_handler.cc |
=================================================================== |
--- webkit/appcache/appcache_request_handler.cc (revision 81647) |
+++ webkit/appcache/appcache_request_handler.cc (working copy) |
@@ -188,11 +188,19 @@ |
void AppCacheRequestHandler::MaybeLoadMainResource(net::URLRequest* request) { |
DCHECK(!job_); |
+ DCHECK(host_); |
+ const AppCacheHost* spawning_host = |
+ ResourceType::IsSharedWorker(resource_type_) ? |
+ host_ : host_->GetSpawningHost(); |
+ GURL preferred_manifest_url = spawning_host ? |
+ spawning_host->preferred_manifest_url() : GURL(); |
+ |
// We may have to wait for our storage query to complete, but |
// this query can also complete syncrhonously. |
job_ = new AppCacheURLRequestJob(request, storage()); |
- storage()->FindResponseForMainRequest(request->url(), this); |
+ storage()->FindResponseForMainRequest( |
+ request->url(), preferred_manifest_url, this); |
} |
void AppCacheRequestHandler::OnMainResponseFound( |
@@ -216,6 +224,7 @@ |
// in advance of subresource loads happening, secondly to prevent the |
// AppCache from falling out of the working set on frame navigations. |
host_->LoadMainResourceCache(cache_id); |
+ host_->set_preferred_manifest_url(manifest_url); |
} |
} else { |
DCHECK(ResourceType::IsSharedWorker(resource_type_)); |