diff options
author | mathiash <mathiash@opera.com> | 2014-11-06 01:46:31 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-11-06 09:46:50 +0000 |
commit | ea83ff6e9f1c0743ca418e6c79036ae4abaadf32 (patch) | |
tree | 1990e11019755281c2e17621ae848a56752fa4b2 /components/web_contents_delegate_android | |
parent | 880b03c6a20bd68ca84b23097a93f88a5c248f0d (diff) | |
download | chromium_src-ea83ff6e9f1c0743ca418e6c79036ae4abaadf32.zip chromium_src-ea83ff6e9f1c0743ca418e6c79036ae4abaadf32.tar.gz chromium_src-ea83ff6e9f1c0743ca418e6c79036ae4abaadf32.tar.bz2 |
Make WebContentsDelegateAndroid pass more calls to Java.
BUG=428784
Review URL: https://codereview.chromium.org/684133007
Cr-Commit-Position: refs/heads/master@{#302997}
Diffstat (limited to 'components/web_contents_delegate_android')
3 files changed, 86 insertions, 0 deletions
diff --git a/components/web_contents_delegate_android/android/java/src/org/chromium/components/web_contents_delegate_android/WebContentsDelegateAndroid.java b/components/web_contents_delegate_android/android/java/src/org/chromium/components/web_contents_delegate_android/WebContentsDelegateAndroid.java index a3ea17f..5e56253 100644 --- a/components/web_contents_delegate_android/android/java/src/org/chromium/components/web_contents_delegate_android/WebContentsDelegateAndroid.java +++ b/components/web_contents_delegate_android/android/java/src/org/chromium/components/web_contents_delegate_android/WebContentsDelegateAndroid.java @@ -106,6 +106,25 @@ public class WebContentsDelegateAndroid { } @CalledByNative + public void didNavigateToPendingEntry() { + } + + @CalledByNative + public void webContentsCreated(long sourceWebContents, long openerRenderFrameId, + String frameName, String targetUrl, long newWebContents) { + } + + @CalledByNative + public boolean shouldCreateWebContents(String targetUrl) { + return true; + } + + @CalledByNative + public boolean onGoToEntryOffset(int offset) { + return true; + } + + @CalledByNative public void onUpdateUrl(String url) { } diff --git a/components/web_contents_delegate_android/web_contents_delegate_android.cc b/components/web_contents_delegate_android/web_contents_delegate_android.cc index 178ae3d..629cd06 100644 --- a/components/web_contents_delegate_android/web_contents_delegate_android.cc +++ b/components/web_contents_delegate_android/web_contents_delegate_android.cc @@ -216,6 +216,58 @@ void WebContentsDelegateAndroid::RendererResponsive(WebContents* source) { Java_WebContentsDelegateAndroid_rendererResponsive(env, obj.obj()); } +void WebContentsDelegateAndroid::DidNavigateToPendingEntry( + WebContents* source) { + JNIEnv* env = AttachCurrentThread(); + ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); + if (obj.is_null()) + return; + Java_WebContentsDelegateAndroid_didNavigateToPendingEntry(env, obj.obj()); +} + +bool WebContentsDelegateAndroid::ShouldCreateWebContents( + WebContents* web_contents, + int route_id, + WindowContainerType window_container_type, + const base::string16& frame_name, + const GURL& target_url, + const std::string& partition_id, + content::SessionStorageNamespace* session_storage_namespace) { + JNIEnv* env = AttachCurrentThread(); + ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); + if (obj.is_null()) + return true; + ScopedJavaLocalRef<jstring> java_url = + ConvertUTF8ToJavaString(env, target_url.spec()); + return Java_WebContentsDelegateAndroid_shouldCreateWebContents(env, obj.obj(), + java_url.obj()); +} + +bool WebContentsDelegateAndroid::OnGoToEntryOffset(int offset) { + JNIEnv* env = AttachCurrentThread(); + ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); + if (obj.is_null()) + return true; + return Java_WebContentsDelegateAndroid_onGoToEntryOffset(env, obj.obj(), + offset); +} + +void WebContentsDelegateAndroid::WebContentsCreated( + WebContents* source_contents, int opener_render_frame_id, + const base::string16& frame_name, const GURL& target_url, + WebContents* new_contents) { + JNIEnv* env = AttachCurrentThread(); + ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); + if (obj.is_null()) + return; + Java_WebContentsDelegateAndroid_webContentsCreated(env, obj.obj(), + reinterpret_cast<intptr_t>(source_contents), + opener_render_frame_id, + base::android::ConvertUTF16ToJavaString(env, frame_name).Release(), + base::android::ConvertUTF8ToJavaString(env, target_url.spec()).Release(), + reinterpret_cast<intptr_t>(new_contents)); +} + void WebContentsDelegateAndroid::CloseContents(WebContents* source) { JNIEnv* env = AttachCurrentThread(); ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env); diff --git a/components/web_contents_delegate_android/web_contents_delegate_android.h b/components/web_contents_delegate_android/web_contents_delegate_android.h index e64f07a..cac909a 100644 --- a/components/web_contents_delegate_android/web_contents_delegate_android.h +++ b/components/web_contents_delegate_android/web_contents_delegate_android.h @@ -71,6 +71,21 @@ class WebContentsDelegateAndroid : public content::WebContentsDelegate { double load_progress) override; virtual void RendererUnresponsive(content::WebContents* source) override; virtual void RendererResponsive(content::WebContents* source) override; + virtual void DidNavigateToPendingEntry(content::WebContents* source) override; + virtual void WebContentsCreated(content::WebContents* source_contents, + int opener_render_frame_id, + const base::string16& frame_name, + const GURL& target_url, + content::WebContents* new_contents) override; + virtual bool ShouldCreateWebContents( + content::WebContents* web_contents, + int route_id, + WindowContainerType window_container_type, + const base::string16& frame_name, + const GURL& target_url, + const std::string& partition_id, + content::SessionStorageNamespace* session_storage_namespace) override; + virtual bool OnGoToEntryOffset(int offset) override; virtual void CloseContents(content::WebContents* source) override; virtual void MoveContents(content::WebContents* source, const gfx::Rect& pos) override; |