Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Doc changes when unhiding the API:
- WebMessageListener does not support ARRAY_BUFFER, review docs to make sure it clearly documented.
- WebMessageCompat: document
getData
andgetArrayBuffer
will return null, unlessgetType
is equal to string or array buffer. - WebMessagePortCompat: review docs and make sure new type is updated.
jb...@google.com <jb...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-main
commit ab44a8fb40979c6790385beeb83e7d52378a0212
Author: Richard He <linyhe@microsoft.com>
Date: Thu Sep 29 17:58:19 2022
Add ArrayBuffer support in WebMessageCompat.
This add a new type (ArrayBuffer) in WebMessageCompat, which can be
send from App to Chromium and vice versa. A transferable ArrayBuffer
from JavaScript is also supported.
Since the new type is not supported by framework,
`WebMessagePort#setWebMessageCallback` changed the behavior to use
WebView impl first.
And the following PostMessage API uses WebView impl if the
WebMessage typs is not support by framework:
- WebMessagePort#postMessage
- WebViewCompat#postWebMessage
To keep backwords competibility, the following APIs do not throw
exception when the type is not correct.
- String WebMessageCompat#getData
- Byte[] WebMessageCompat#getArrayBuffer
Design doc:https://docs.google.com/document/d/1nsQnwwY43OuA4PsSaMioiKA0c_M1eV1XX2q15YFA7cI/edit?usp=sharing
Test: Added WebViewWebMessageCompatTest
Change-Id: I705512d2be14315831599ceb98e37be300fa5591
Bug: 251152171
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageListenerAdapter.java
A webkit/webkit/src/main/java/androidx/webkit/internal/WebMessagePayloadAdapter.java
A webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageCompatActivity.java
M webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/JsJavaInteractionActivity.java
M webkit/webkit/src/main/java/androidx/webkit/WebMessageCompat.java
A webkit/integration-tests/testapp/src/main/assets/www/web_message_compat.html
M webkit/integration-tests/testapp/src/main/AndroidManifest.xml
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebViewFeatureInternal.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageCallbackAdapter.java
A webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageCompatTest.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessagePortImpl.java
A webkit/integration-tests/testapp/src/main/res/layout/activity_web_message_compat.xml
M webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
M webkit/integration-tests/testapp/src/main/res/values/donottranslate-strings.xml
https://android-review.googlesource.com/2238574
Branch: androidx-main
commit ab44a8fb40979c6790385beeb83e7d52378a0212
Author: Richard He <linyhe@microsoft.com>
Date: Thu Sep 29 17:58:19 2022
Add ArrayBuffer support in WebMessageCompat.
This add a new type (ArrayBuffer) in WebMessageCompat, which can be
send from App to Chromium and vice versa. A transferable ArrayBuffer
from JavaScript is also supported.
Since the new type is not supported by framework,
`WebMessagePort#setWebMessageCallback` changed the behavior to use
WebView impl first.
And the following PostMessage API uses WebView impl if the
WebMessage typs is not support by framework:
- WebMessagePort#postMessage
- WebViewCompat#postWebMessage
To keep backwords competibility, the following APIs do not throw
exception when the type is not correct.
- String WebMessageCompat#getData
- Byte[] WebMessageCompat#getArrayBuffer
Design doc:
Test: Added WebViewWebMessageCompatTest
Change-Id: I705512d2be14315831599ceb98e37be300fa5591
Bug: 251152171
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageListenerAdapter.java
A webkit/webkit/src/main/java/androidx/webkit/internal/WebMessagePayloadAdapter.java
A webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/WebMessageCompatActivity.java
M webkit/integration-tests/testapp/src/main/java/com/example/androidx/webkit/JsJavaInteractionActivity.java
M webkit/webkit/src/main/java/androidx/webkit/WebMessageCompat.java
A webkit/integration-tests/testapp/src/main/assets/www/web_message_compat.html
M webkit/integration-tests/testapp/src/main/AndroidManifest.xml
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebViewFeatureInternal.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageCallbackAdapter.java
A webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageCompatTest.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessagePortImpl.java
A webkit/integration-tests/testapp/src/main/res/layout/activity_web_message_compat.xml
M webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
M webkit/integration-tests/testapp/src/main/res/values/donottranslate-strings.xml
Description
Currently, if using the
startIntentSenderForResult()
fragment APIs, activity launch options are ignored. The options may not be correctly passed to theComponentActivity
and even if they are, they are not being extracted correctly.We should ensure that the options are properly received by
ComponentActivity
and that they are actually being used.