summaryrefslogtreecommitdiff
path: root/src/org
diff options
context:
space:
mode:
authorShimi Zhang <ctzsm@chromium.org>2019-09-26 19:03:46 +0000
committerCommit Bot <commit-bot@chromium.org>2019-09-26 19:03:46 +0000
commit3d3b20aefaac1a80e60d1cb9d8fb1be5449eaa59 (patch)
tree8966ef9e3822c90fd8ee2fea60199e071beebc7b /src/org
parente5099597851ce16e51c094aae360f56c86f6e230 (diff)
downloadwebview_support_interfaces-3d3b20aefaac1a80e60d1cb9d8fb1be5449eaa59.tar.gz
[JJI] Port {add,remove}WebMessageListener to glue layer
See the corresponding AndroidX change: http://aosp/1099421 Bug: 918065 Change-Id: Iad8cd0cd273235de1105f04844891494f793af1b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1745462 Commit-Queue: Shimi Zhang <ctzsm@chromium.org> Reviewed-by: Nate Fischer <ntfschr@chromium.org> Reviewed-by: Richard Coles <torne@chromium.org> Reviewed-by: Changwan Ryu <changwan@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#700368} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 2d369b47fc25a381f396625437dc6d6f427e293c
Diffstat (limited to 'src/org')
-rw-r--r--src/org/chromium/support_lib_boundary/JsReplyProxyBoundaryInterface.java12
-rw-r--r--src/org/chromium/support_lib_boundary/WebMessageListenerBoundaryInterface.java18
-rw-r--r--src/org/chromium/support_lib_boundary/WebViewProviderBoundaryInterface.java3
-rw-r--r--src/org/chromium/support_lib_boundary/util/Features.java4
4 files changed, 37 insertions, 0 deletions
diff --git a/src/org/chromium/support_lib_boundary/JsReplyProxyBoundaryInterface.java b/src/org/chromium/support_lib_boundary/JsReplyProxyBoundaryInterface.java
new file mode 100644
index 0000000..e2da069
--- /dev/null
+++ b/src/org/chromium/support_lib_boundary/JsReplyProxyBoundaryInterface.java
@@ -0,0 +1,12 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.support_lib_boundary;
+
+/**
+ * Boundary interface for org.chromium.android_webview.WebMessageListener.
+ */
+public interface JsReplyProxyBoundaryInterface extends IsomorphicObjectBoundaryInterface {
+ void postMessage(String message);
+}
diff --git a/src/org/chromium/support_lib_boundary/WebMessageListenerBoundaryInterface.java b/src/org/chromium/support_lib_boundary/WebMessageListenerBoundaryInterface.java
new file mode 100644
index 0000000..92a393f
--- /dev/null
+++ b/src/org/chromium/support_lib_boundary/WebMessageListenerBoundaryInterface.java
@@ -0,0 +1,18 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.support_lib_boundary;
+
+import android.net.Uri;
+import android.webkit.WebView;
+
+import java.lang.reflect.InvocationHandler;
+
+/**
+ * Boundary interface for org.chromium.android_webview.WebMessageListener.
+ */
+public interface WebMessageListenerBoundaryInterface extends FeatureFlagHolderBoundaryInterface {
+ void onPostMessage(WebView view, /* WebMessage */ InvocationHandler message, Uri sourceOrigin,
+ boolean isMainFrame, /* JsReplyProxy */ InvocationHandler replyProxy);
+}
diff --git a/src/org/chromium/support_lib_boundary/WebViewProviderBoundaryInterface.java b/src/org/chromium/support_lib_boundary/WebViewProviderBoundaryInterface.java
index c896d89..bb677ef 100644
--- a/src/org/chromium/support_lib_boundary/WebViewProviderBoundaryInterface.java
+++ b/src/org/chromium/support_lib_boundary/WebViewProviderBoundaryInterface.java
@@ -17,6 +17,9 @@ public interface WebViewProviderBoundaryInterface {
/* VisualStateCallback */ InvocationHandler callback);
/* WebMessagePort */ InvocationHandler[] createWebMessageChannel();
void postMessageToMainFrame(/* WebMessage */ InvocationHandler message, Uri targetOrigin);
+ void addWebMessageListener(String jsObjectName, String[] allowedOriginRules,
+ /* WebMessageListener */ InvocationHandler listener);
+ void removeWebMessageListener(String jsObjectName);
WebViewClient getWebViewClient();
WebChromeClient getWebChromeClient();
/* WebViewRenderer */ InvocationHandler getWebViewRenderer();
diff --git a/src/org/chromium/support_lib_boundary/util/Features.java b/src/org/chromium/support_lib_boundary/util/Features.java
index 4ea84c1..40cd85b 100644
--- a/src/org/chromium/support_lib_boundary/util/Features.java
+++ b/src/org/chromium/support_lib_boundary/util/Features.java
@@ -169,4 +169,8 @@ public class Features {
// WebSettingsCompat.setForceDarkBehavior
// WebSettingsCompat.getForceDarkBehavior
public static final String FORCE_DARK_BEHAVIOR = "FORCE_DARK_BEHAVIOR";
+
+ // WebViewCompat.addWebMessageListener
+ // WebViewCompat.removeWebMessageListener
+ public static final String WEB_MESSAGE_LISTENER = "WEB_MESSAGE_LISTENER";
}