Index: Source/core/loader/appcache/ApplicationCacheHost.cpp |
diff --git a/Source/web/ApplicationCacheHost.cpp b/Source/core/loader/appcache/ApplicationCacheHost.cpp |
similarity index 91% |
rename from Source/web/ApplicationCacheHost.cpp |
rename to Source/core/loader/appcache/ApplicationCacheHost.cpp |
index 220c9b93a64d4f79af7b742042c63d2d5bea5fb1..d260884c3337d8bc4df4601d6ba25cdf2aaff8e6 100644 |
--- a/Source/web/ApplicationCacheHost.cpp |
+++ b/Source/core/loader/appcache/ApplicationCacheHost.cpp |
@@ -31,25 +31,24 @@ |
#include "config.h" |
#include "core/loader/appcache/ApplicationCacheHost.h" |
-#include "public/platform/WebURL.h" |
-#include "public/platform/WebURLError.h" |
-#include "public/platform/WebURLResponse.h" |
-#include "public/platform/WebVector.h" |
-#include "ApplicationCacheHostInternal.h" |
-#include "WebFrameImpl.h" |
#include "bindings/v8/ExceptionStatePlaceholder.h" |
#include "core/events/ProgressEvent.h" |
+#include "core/frame/Frame.h" |
+#include "core/frame/Settings.h" |
#include "core/inspector/InspectorApplicationCacheAgent.h" |
#include "core/inspector/InspectorInstrumentation.h" |
#include "core/loader/DocumentLoader.h" |
#include "core/loader/FrameLoader.h" |
#include "core/loader/appcache/ApplicationCache.h" |
-#include "core/frame/Frame.h" |
+#include "core/loader/appcache/ApplicationCacheHostInternal.h" |
#include "core/page/Page.h" |
-#include "core/frame/Settings.h" |
#include "platform/exported/WrappedResourceRequest.h" |
#include "platform/exported/WrappedResourceResponse.h" |
#include "platform/weborigin/SecurityOrigin.h" |
+#include "public/platform/WebURL.h" |
+#include "public/platform/WebURLError.h" |
+#include "public/platform/WebURLResponse.h" |
+#include "public/platform/WebVector.h" |
using namespace blink; |
@@ -83,9 +82,22 @@ void ApplicationCacheHost::willStartLoadingMainResource(ResourceRequest& request |
m_internal = adoptPtr(new ApplicationCacheHostInternal(this)); |
if (m_internal->m_outerHost) { |
WrappedResourceRequest wrapped(request); |
- m_internal->m_outerHost->willStartMainResourceRequest(wrapped, WebFrameImpl::fromFrame(m_documentLoader->frame())); |
- } else |
+ |
+ const WebApplicationCacheHost* spawningHost = 0; |
+ if (Frame* frame = m_documentLoader->frame()) { |
+ Frame* spawningFrame = frame->tree().parent(); |
+ if (!spawningFrame) |
+ spawningFrame = frame->loader().opener(); |
+ if (!spawningFrame) |
+ spawningFrame = frame; |
+ if (DocumentLoader* spawningDocLoader = spawningFrame->loader().documentLoader()) |
+ spawningHost = ApplicationCacheHostInternal::toWebApplicationCacheHost(spawningDocLoader->applicationCacheHost()); |
+ } |
+ |
+ m_internal->m_outerHost->willStartMainResourceRequest(wrapped, spawningHost); |
+ } else { |
m_internal.clear(); |
+ } |
// NOTE: The semantics of this method, and others in this interface, are subtly different |
// than the method names would suggest. For example, in this method never returns an appcached |
@@ -244,8 +256,7 @@ void ApplicationCacheHost::abort() |
bool ApplicationCacheHost::isApplicationCacheEnabled() |
{ |
ASSERT(m_documentLoader->frame()); |
- return m_documentLoader->frame()->settings() |
- && m_documentLoader->frame()->settings()->offlineWebApplicationCacheEnabled(); |
+ return m_documentLoader->frame()->settings() && m_documentLoader->frame()->settings()->offlineWebApplicationCacheEnabled(); |
} |
-} // namespace WebCore |
+} // namespace WebCore |