diff options
-rw-r--r-- | WebCore/platform/network/android/ResourceHandleAndroid.cpp | 8 | ||||
-rw-r--r-- | WebKit/android/jni/WebCoreFrameBridge.cpp | 6 | ||||
-rw-r--r-- | WebKit/android/jni/WebCoreFrameBridge.h | 2 |
3 files changed, 11 insertions, 5 deletions
diff --git a/WebCore/platform/network/android/ResourceHandleAndroid.cpp b/WebCore/platform/network/android/ResourceHandleAndroid.cpp index 15b369a..639582c 100644 --- a/WebCore/platform/network/android/ResourceHandleAndroid.cpp +++ b/WebCore/platform/network/android/ResourceHandleAndroid.cpp @@ -29,6 +29,7 @@ #include "ResourceHandle.h" #include "DocLoader.h" +#include "DocumentLoader.h" #include "Frame.h" #include "FrameLoader.h" #include "FrameLoaderClientAndroid.h" @@ -54,9 +55,12 @@ ResourceHandle::~ResourceHandle() bool ResourceHandle::start(Frame* frame) { + DocumentLoader* adl = frame->loader()->activeDocumentLoader(); + bool isMainResource = + ((void*) client()) == ((void*) adl->mainResourceLoader()); WebCoreResourceLoader* loader; FrameLoaderClientAndroid* client = static_cast<FrameLoaderClientAndroid*> (frame->loader()->client()); - loader = client->webFrame()->startLoadingResource(this, d->m_request, false); + loader = client->webFrame()->startLoadingResource(this, d->m_request, isMainResource, false); if (loader) { Release(d->m_loader); @@ -147,7 +151,7 @@ void ResourceHandle::loadResourceSynchronously(const ResourceRequest& request, ResourceHandle h(request, &s, false, false, false); // This blocks until the load is finished. FrameLoaderClientAndroid* client = static_cast<FrameLoaderClientAndroid*> (frame->loader()->client()); - client->webFrame()->startLoadingResource(&h, request, true); + client->webFrame()->startLoadingResource(&h, request, false, true); } } // namespace WebCore diff --git a/WebKit/android/jni/WebCoreFrameBridge.cpp b/WebKit/android/jni/WebCoreFrameBridge.cpp index 4255422..c420b4c 100644 --- a/WebKit/android/jni/WebCoreFrameBridge.cpp +++ b/WebKit/android/jni/WebCoreFrameBridge.cpp @@ -170,7 +170,7 @@ WebFrame::WebFrame(JNIEnv* env, jobject obj, jobject historyList, WebCore::Page* mJavaFrame->mObj = adoptGlobalRef(env, obj); mJavaFrame->mHistoryList = adoptGlobalRef(env, historyList); mJavaFrame->mStartLoadingResource = env->GetMethodID(clazz, "startLoadingResource", - "(ILjava/lang/String;Ljava/lang/String;Ljava/util/HashMap;[BJIZ)Landroid/webkit/LoadListener;"); + "(ILjava/lang/String;Ljava/lang/String;Ljava/util/HashMap;[BJIZZZ)Landroid/webkit/LoadListener;"); mJavaFrame->mLoadStarted = env->GetMethodID(clazz, "loadStarted", "(Ljava/lang/String;Landroid/graphics/Bitmap;IZ)V"); mJavaFrame->mTransitionToCommitted = env->GetMethodID(clazz, "transitionToCommitted", @@ -323,6 +323,7 @@ private: WebCoreResourceLoader* WebFrame::startLoadingResource(WebCore::ResourceHandle* loader, const WebCore::ResourceRequest& request, + bool mainResource, bool synchronous) { #ifdef ANDROID_INSTRUMENT @@ -443,7 +444,8 @@ WebFrame::startLoadingResource(WebCore::ResourceHandle* loader, env->CallObjectMethod(obj.get(), mJavaFrame->mStartLoadingResource, (int)loader, jUrlStr, jMethodStr, jHeaderMap, jPostDataStr, formdata ? formdata->identifier(): 0, - cacheMode, synchronous); + cacheMode, mainResource, request.getUserGesture(), + synchronous); env->DeleteLocalRef(jUrlStr); env->DeleteLocalRef(jMethodStr); diff --git a/WebKit/android/jni/WebCoreFrameBridge.h b/WebKit/android/jni/WebCoreFrameBridge.h index 51ed9a6..1fdf140 100644 --- a/WebKit/android/jni/WebCoreFrameBridge.h +++ b/WebKit/android/jni/WebCoreFrameBridge.h @@ -63,7 +63,7 @@ class WebFrame : public WebCoreRefObject { static WebFrame* getWebFrame(const WebCore::Frame* frame); virtual WebCoreResourceLoader* startLoadingResource(WebCore::ResourceHandle*, - const WebCore::ResourceRequest& request, + const WebCore::ResourceRequest& request, bool mainResource, bool synchronous); void reportError(int errorCode, const WebCore::String& description, |