summaryrefslogtreecommitdiffstats
path: root/components/web_contents_delegate_android
diff options
context:
space:
mode:
authormathiash <mathiash@opera.com>2014-11-06 01:46:31 -0800
committerCommit bot <commit-bot@chromium.org>2014-11-06 09:46:50 +0000
commitea83ff6e9f1c0743ca418e6c79036ae4abaadf32 (patch)
tree1990e11019755281c2e17621ae848a56752fa4b2 /components/web_contents_delegate_android
parent880b03c6a20bd68ca84b23097a93f88a5c248f0d (diff)
downloadchromium_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')
-rw-r--r--components/web_contents_delegate_android/android/java/src/org/chromium/components/web_contents_delegate_android/WebContentsDelegateAndroid.java19
-rw-r--r--components/web_contents_delegate_android/web_contents_delegate_android.cc52
-rw-r--r--components/web_contents_delegate_android/web_contents_delegate_android.h15
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;