Index: Source/core/loader/appcache/ApplicationCacheHost.cpp |
diff --git a/Source/core/loader/appcache/ApplicationCacheHost.cpp b/Source/core/loader/appcache/ApplicationCacheHost.cpp |
index 669eb54d5f253ddc127069658f1a9e1e28eb9781..610649c1dd921afde716b7dbe8bc2704dc692c2b 100644 |
--- a/Source/core/loader/appcache/ApplicationCacheHost.cpp |
+++ b/Source/core/loader/appcache/ApplicationCacheHost.cpp |
@@ -88,12 +88,12 @@ void ApplicationCacheHost::willStartLoadingMainResource(ResourceRequest& request |
WrappedResourceRequest wrapped(request); |
const WebApplicationCacheHost* spawningHost = 0; |
- LocalFrame* spawningFrame = frame.tree().parent(); |
- if (!spawningFrame) |
+ Frame* spawningFrame = frame.tree().parent(); |
+ if (!spawningFrame || !spawningFrame->isLocalFrame()) |
spawningFrame = frame.loader().opener(); |
- if (!spawningFrame) |
+ if (!spawningFrame || !spawningFrame->isLocalFrame()) |
spawningFrame = &frame; |
- if (DocumentLoader* spawningDocLoader = spawningFrame->loader().documentLoader()) |
+ if (DocumentLoader* spawningDocLoader = toLocalFrame(spawningFrame)->loader().documentLoader()) |
spawningHost = spawningDocLoader->applicationCacheHost() ? spawningDocLoader->applicationCacheHost()->m_host.get() : 0; |
m_host->willStartMainResourceRequest(wrapped, spawningHost); |