diff options
author | Shimi Zhang <ctzsm@chromium.org> | 2019-09-26 19:03:46 +0000 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-09-26 19:03:46 +0000 |
commit | 3d3b20aefaac1a80e60d1cb9d8fb1be5449eaa59 (patch) | |
tree | 8966ef9e3822c90fd8ee2fea60199e071beebc7b /src/org | |
parent | e5099597851ce16e51c094aae360f56c86f6e230 (diff) | |
download | webview_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')
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"; } |