summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--WebCore/platform/network/NetworkingContext.h10
-rw-r--r--WebCore/platform/network/android/ResourceHandleAndroid.cpp23
-rw-r--r--WebKit/android/WebCoreSupport/FrameNetworkingContextAndroid.cpp57
-rw-r--r--WebKit/android/WebCoreSupport/FrameNetworkingContextAndroid.h18
4 files changed, 87 insertions, 21 deletions
diff --git a/WebCore/platform/network/NetworkingContext.h b/WebCore/platform/network/NetworkingContext.h
index a7d40dc..47ec87a 100644
--- a/WebCore/platform/network/NetworkingContext.h
+++ b/WebCore/platform/network/NetworkingContext.h
@@ -33,6 +33,10 @@ class QNetworkAccessManager;
namespace WebCore {
+#if PLATFORM(ANDROID)
+class FrameLoaderClient;
+class MainResourceLoader;
+#endif
class ResourceError;
class ResourceRequest;
@@ -60,6 +64,12 @@ public:
virtual ResourceError blockedError(const ResourceRequest&) const = 0;
#endif
+#if PLATFORM(ANDROID)
+ virtual MainResourceLoader* mainResourceLoader() const = 0;
+ virtual bool isPrivateBrowsingEnabled() const = 0;
+ virtual FrameLoaderClient* frameLoaderClient() const = 0;
+#endif
+
protected:
NetworkingContext() { }
};
diff --git a/WebCore/platform/network/android/ResourceHandleAndroid.cpp b/WebCore/platform/network/android/ResourceHandleAndroid.cpp
index c684da3..8e42643 100644
--- a/WebCore/platform/network/android/ResourceHandleAndroid.cpp
+++ b/WebCore/platform/network/android/ResourceHandleAndroid.cpp
@@ -49,17 +49,14 @@ ResourceHandle::~ResourceHandle()
{
}
-bool ResourceHandle::start(Frame* frame)
+bool ResourceHandle::start(NetworkingContext* context)
{
- DocumentLoader* docLoader = frame->loader()->activeDocumentLoader();
- MainResourceLoader* mainLoader = docLoader->mainResourceLoader();
+ MainResourceLoader* mainLoader = context->mainResourceLoader();
bool isMainResource =
static_cast<void*>(mainLoader) == static_cast<void*>(client());
- bool isPrivateBrowsing = false;
- if (frame->settings())
- isPrivateBrowsing = frame->settings()->privateBrowsingEnabled();
+ bool isPrivateBrowsing = context->isPrivateBrowsingEnabled();
- PassRefPtr<ResourceLoaderAndroid> loader = ResourceLoaderAndroid::start(this, d->m_firstRequest, frame->loader()->client(), isMainResource, false, isPrivateBrowsing);
+ PassRefPtr<ResourceLoaderAndroid> loader = ResourceLoaderAndroid::start(this, d->m_firstRequest, context->frameLoaderClient(), isMainResource, false, isPrivateBrowsing);
if (loader) {
d->m_loader = loader;
@@ -154,22 +151,18 @@ private:
WTF::Vector<char>* m_data;
};
-void ResourceHandle::loadResourceSynchronously(const ResourceRequest& request,
- StoredCredentials /*storedCredentials*/,
- ResourceError& error, ResourceResponse& response, WTF::Vector<char>& data,
- Frame* frame)
+void ResourceHandle::loadResourceSynchronously(NetworkingContext* context, const ResourceRequest& request,
+ StoredCredentials, ResourceError& error, ResourceResponse& response, WTF::Vector<char>& data)
{
SyncLoader s(error, response, data);
RefPtr<ResourceHandle> h = adoptRef(new ResourceHandle(request, &s, false, false));
- bool isPrivateBrowsing = false;
- if (frame->settings())
- isPrivateBrowsing = frame->settings()->privateBrowsingEnabled();
+ bool isPrivateBrowsing = context->isPrivateBrowsingEnabled();
// This blocks until the load is finished.
// Use the request owned by the ResourceHandle. This has had the username
// and password (if present) stripped from the URL in
// ResourceHandleInternal::ResourceHandleInternal(). This matches the
// behaviour in the asynchronous case.
- ResourceLoaderAndroid::start(h.get(), request, frame->loader()->client(), false, true, isPrivateBrowsing);
+ ResourceLoaderAndroid::start(h.get(), request, context->frameLoaderClient(), false, true, isPrivateBrowsing);
}
} // namespace WebCore
diff --git a/WebKit/android/WebCoreSupport/FrameNetworkingContextAndroid.cpp b/WebKit/android/WebCoreSupport/FrameNetworkingContextAndroid.cpp
new file mode 100644
index 0000000..1d982cd
--- /dev/null
+++ b/WebKit/android/WebCoreSupport/FrameNetworkingContextAndroid.cpp
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2010, The Android Open Source Project
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "FrameNetworkingContextAndroid.h"
+
+#include "DocumentLoader.h"
+#include "MainResourceLoader.h"
+#include "Settings.h"
+
+using namespace WebCore;
+
+namespace android {
+
+FrameNetworkingContextAndroid::FrameNetworkingContextAndroid(WebCore::Frame* frame)
+ : WebCore::FrameNetworkingContext(frame)
+{
+}
+
+MainResourceLoader* FrameNetworkingContextAndroid::mainResourceLoader() const
+{
+ return frame()->loader()->activeDocumentLoader()->mainResourceLoader();
+}
+
+bool FrameNetworkingContextAndroid::isPrivateBrowsingEnabled() const
+{
+ return frame()->settings() && frame()->settings()->privateBrowsingEnabled();
+}
+
+FrameLoaderClient* FrameNetworkingContextAndroid::frameLoaderClient() const
+{
+ return frame()->loader()->client();
+}
+
+} // namespace android
diff --git a/WebKit/android/WebCoreSupport/FrameNetworkingContextAndroid.h b/WebKit/android/WebCoreSupport/FrameNetworkingContextAndroid.h
index 01a3c3e..d1b2ad2 100644
--- a/WebKit/android/WebCoreSupport/FrameNetworkingContextAndroid.h
+++ b/WebKit/android/WebCoreSupport/FrameNetworkingContextAndroid.h
@@ -28,6 +28,11 @@
#include "FrameNetworkingContext.h"
+namespace WebCore {
+class MainResourceLoader;
+class FrameLoaderClient;
+}
+
namespace android {
class FrameNetworkingContextAndroid : public WebCore::FrameNetworkingContext {
@@ -38,12 +43,13 @@ public:
}
private:
- FrameNetworkingContextAndroid(WebCore::Frame* frame)
- : WebCore::FrameNetworkingContext(frame)
- {
- }
+ FrameNetworkingContextAndroid(WebCore::Frame*);
+
+ virtual WebCore::MainResourceLoader* mainResourceLoader() const;
+ virtual bool isPrivateBrowsingEnabled() const;
+ virtual WebCore::FrameLoaderClient* frameLoaderClient() const;
};
-}
+} // namespace android
-#endif
+#endif // FrameNetworkingContextAndroid_h