Index: Source/core/loader/cache/ResourceFetcher.cpp |
diff --git a/Source/core/loader/cache/ResourceFetcher.cpp b/Source/core/loader/cache/ResourceFetcher.cpp |
index fb388beed5c03e521338bd717c2e6625d473488d..0efc5c1f45e7e18fad3de9a4c97d389ec68cdc96 100644 |
--- a/Source/core/loader/cache/ResourceFetcher.cpp |
+++ b/Source/core/loader/cache/ResourceFetcher.cpp |
@@ -502,12 +502,11 @@ CachedResourceHandle<CachedResource> ResourceFetcher::requestResource(CachedReso |
} |
if ((policy != Use || resource->stillNeedsLoad()) && FetchRequest::NoDefer == request.defer()) { |
- if (!frame()) |
- return 0; |
- |
- FrameLoader* frameLoader = this->frameLoader(); |
- if (request.options().securityCheck == DoSecurityCheck && (frameLoader->state() == FrameStateProvisional || !frameLoader->activeDocumentLoader() || frameLoader->activeDocumentLoader()->isStopping())) |
+ if (!frame() || m_documentLoader != frame()->loader()->activeDocumentLoader() || m_documentLoader->isStopping()) { |
+ if (resource->inCache()) |
+ memoryCache()->remove(resource.get()); |
return 0; |
+ } |
if (!m_documentLoader->scheduleArchiveLoad(resource.get(), request.resourceRequest())) |
resource->load(this, request.options()); |