Pass up flags for the main resource and user gesture.

This requires a change to the framework.
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 @@
 
 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 @@
     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 @@
     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 @@
 WebCoreResourceLoader*
 WebFrame::startLoadingResource(WebCore::ResourceHandle* loader,
                                   const WebCore::ResourceRequest& request,
+                                  bool mainResource,
                                   bool synchronous)
 {
 #ifdef ANDROID_INSTRUMENT
@@ -443,7 +444,8 @@
         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 @@
     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,