Index: content/browser/web_contents/web_contents_android.cc |
diff --git a/content/browser/web_contents/web_contents_android.cc b/content/browser/web_contents/web_contents_android.cc |
index c373a2060f6f4e442b9338f7d189acc35f3e9c48..bdfaca542d1e444aff14bf210007eccd3cabdbd2 100644 |
--- a/content/browser/web_contents/web_contents_android.cc |
+++ b/content/browser/web_contents/web_contents_android.cc |
@@ -232,6 +232,23 @@ static void DestroyWebContents(JNIEnv* env, |
} |
// static |
+ScopedJavaLocalRef<jobject> FromRenderFrameHost( |
boliu
2017/02/16 01:00:58
this is a really convoluted way to implement this.
rwlbuis
2017/03/01 21:53:57
Ok I added RenderFrameHostDelegate.
|
+ JNIEnv* env, |
+ const JavaParamRef<jclass>& clazz, |
+ const JavaParamRef<jobject>& jrender_frame_host_android) { |
+ RenderFrameHost* rfh = |
+ RenderFrameHost::FromJavaRenderFrameHost(jrender_frame_host_android); |
+ if (!rfh) |
+ return ScopedJavaLocalRef<jobject>(); |
+ |
+ WebContents* webContents = WebContents::FromRenderFrameHost(rfh); |
+ if (!webContents) |
+ return ScopedJavaLocalRef<jobject>(); |
+ |
+ return webContents->GetJavaWebContents(); |
+} |
+ |
+// static |
ScopedJavaLocalRef<jobject> FromNativePtr(JNIEnv* env, |
const JavaParamRef<jclass>& clazz, |
jlong web_contents_ptr) { |
@@ -285,6 +302,12 @@ WebContentsAndroid::GetJavaObject() { |
return base::android::ScopedJavaLocalRef<jobject>(obj_); |
} |
+ScopedJavaLocalRef<jobject> WebContentsAndroid::GetMainFrame( |
+ JNIEnv* env, |
+ const JavaParamRef<jobject>& obj) const { |
+ return web_contents_->GetMainFrame()->GetJavaRenderFrameHost(); |
+} |
+ |
ScopedJavaLocalRef<jstring> WebContentsAndroid::GetTitle( |
JNIEnv* env, |
const JavaParamRef<jobject>& obj) const { |