Fixed
Status Update
Comments
li...@microsoft.com <li...@microsoft.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.
ap...@google.com <ap...@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
na...@google.com <na...@google.com> #4
The following release(s) address this bug:
androidx.webkit:webkit:1.6.0-alpha02
pb...@google.com <pb...@google.com>
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-main
commit f0be00e0c911751fe832ea99d88f6b30e25e124e
Author: Richard He <linyhe@microsoft.com>
Date: Fri Apr 21 13:56:44 2023
Add ArrayBuffer support in WebMessageListener
This CL adds ArrayBuffer type support in WebMessageListener,
which can be send from App to Chromium and vice versa.
A new public API in JavaScriptReplyProxy is added to post
ArrayBuffer to Web. For receiving ArrayBuffer from Web,
WebMessageListener#onPostMessage reuses `WebMessageCompat`, which
added ArrayBuffer support in previous CL, see:
I705512d2be14315831599ceb98e37be300fa5591.
This CL also rename feature flag from
`WEB_MESSAGE_GET_MESSAGE_PAYLOAD` to `WEB_MESSAGE_ARRAY_BUFFER`.
Design doc:https://docs.google.com/document/d/e/2PACX-1vTyRry_iKKvYI2vENP-5VzIpfsUH__d5YuipJtKobyAp0nV2W9vDgchs_2q4_hbaUGkM_HnaVO6jTlX/pub
Test: Add in WebViewWebMessageListenerTest
Bug: 251152171
Change-Id: I3e30d6524187b508b714e41844cfbb3c4e36d75b
M webkit/integration-tests/testapp/src/main/assets/www/web_message_listener.html
M 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/WebMessageListenerActivity.java
M webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageCompatTest.java
M webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageListenerTest.java
M webkit/webkit/src/main/java/androidx/webkit/JavaScriptReplyProxy.java
M webkit/webkit/src/main/java/androidx/webkit/WebMessageCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
M webkit/webkit/src/main/java/androidx/webkit/internal/JavaScriptReplyProxyImpl.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageListenerAdapter.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessagePayloadAdapter.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebViewFeatureInternal.java
https://android-review.googlesource.com/2554311
Branch: androidx-main
commit f0be00e0c911751fe832ea99d88f6b30e25e124e
Author: Richard He <linyhe@microsoft.com>
Date: Fri Apr 21 13:56:44 2023
Add ArrayBuffer support in WebMessageListener
This CL adds ArrayBuffer type support in WebMessageListener,
which can be send from App to Chromium and vice versa.
A new public API in JavaScriptReplyProxy is added to post
ArrayBuffer to Web. For receiving ArrayBuffer from Web,
WebMessageListener#onPostMessage reuses `WebMessageCompat`, which
added ArrayBuffer support in previous CL, see:
I705512d2be14315831599ceb98e37be300fa5591.
This CL also rename feature flag from
`WEB_MESSAGE_GET_MESSAGE_PAYLOAD` to `WEB_MESSAGE_ARRAY_BUFFER`.
Design doc:
Test: Add in WebViewWebMessageListenerTest
Bug: 251152171
Change-Id: I3e30d6524187b508b714e41844cfbb3c4e36d75b
M webkit/integration-tests/testapp/src/main/assets/www/web_message_listener.html
M 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/WebMessageListenerActivity.java
M webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageCompatTest.java
M webkit/webkit/src/androidTest/java/androidx/webkit/WebViewWebMessageListenerTest.java
M webkit/webkit/src/main/java/androidx/webkit/JavaScriptReplyProxy.java
M webkit/webkit/src/main/java/androidx/webkit/WebMessageCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
M webkit/webkit/src/main/java/androidx/webkit/internal/JavaScriptReplyProxyImpl.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageAdapter.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessageListenerAdapter.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebMessagePayloadAdapter.java
M webkit/webkit/src/main/java/androidx/webkit/internal/WebViewFeatureInternal.java
jo...@gmail.com <jo...@gmail.com> #6
ok
ap...@google.com <ap...@google.com> #7
Project: platform/frameworks/support
Branch: androidx-main
commit bf75ca82f3a2182d583436a85f466396cf2f4f72
Author: Richard He <linyhe@microsoft.com>
Date: Thu May 18 14:47:22 2023
Unhide API for WEB_MESSAGE_ARRAY_BUFFER feature.
This CL unhides the public API related to ArrayBuffer support in
WebMessageCompat, WebMessagePortCompat and JsReplyProxy.
Lint baseline: Like WebMessageCompat String constructor, this
change still use WebMessagePortCompat array as parameter.
Fixes: 251152171
Test: ./gradlew :webkit:webkit:checkApi
Test: ./gradlew :webkit:webkit:verifyDependencyVersions
Relnote: "Add support for passing ArrayBuffer over
`WebMessagePortCompat#postMessage`, `JsReplyProxy#postMessage`
and `WebViewCompat#postWebMessage`, receiving ArrayBuffer from
JavaScript over `WebMessagePortCompat` and `WebMessageListener`,
and receiving transferable ArrayBuffer from JavaScript over
`WebMessagePortCompat`."
Change-Id: Ie756728c63c528c3e36417f7719cead78d7c99eb
M webkit/webkit/api/api_lint.ignore
M webkit/webkit/api/current.txt
M webkit/webkit/api/restricted_current.txt
A webkit/webkit/src/androidTest/java/androidx/webkit/WebMessageCompatUnitTest.java
M webkit/webkit/src/main/java/androidx/webkit/JavaScriptReplyProxy.java
M webkit/webkit/src/main/java/androidx/webkit/WebMessageCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebMessagePortCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
https://android-review.googlesource.com/2596550
Branch: androidx-main
commit bf75ca82f3a2182d583436a85f466396cf2f4f72
Author: Richard He <linyhe@microsoft.com>
Date: Thu May 18 14:47:22 2023
Unhide API for WEB_MESSAGE_ARRAY_BUFFER feature.
This CL unhides the public API related to ArrayBuffer support in
WebMessageCompat, WebMessagePortCompat and JsReplyProxy.
Lint baseline: Like WebMessageCompat String constructor, this
change still use WebMessagePortCompat array as parameter.
Fixes: 251152171
Test: ./gradlew :webkit:webkit:checkApi
Test: ./gradlew :webkit:webkit:verifyDependencyVersions
Relnote: "Add support for passing ArrayBuffer over
`WebMessagePortCompat#postMessage`, `JsReplyProxy#postMessage`
and `WebViewCompat#postWebMessage`, receiving ArrayBuffer from
JavaScript over `WebMessagePortCompat` and `WebMessageListener`,
and receiving transferable ArrayBuffer from JavaScript over
`WebMessagePortCompat`."
Change-Id: Ie756728c63c528c3e36417f7719cead78d7c99eb
M webkit/webkit/api/api_lint.ignore
M webkit/webkit/api/current.txt
M webkit/webkit/api/restricted_current.txt
A webkit/webkit/src/androidTest/java/androidx/webkit/WebMessageCompatUnitTest.java
M webkit/webkit/src/main/java/androidx/webkit/JavaScriptReplyProxy.java
M webkit/webkit/src/main/java/androidx/webkit/WebMessageCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebMessagePortCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewCompat.java
M webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
pr...@google.com <pr...@google.com> #8
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.webkit:webkit:1.8.0-alpha01
Description
This is an AndroidX-side tracking bug forhttps://crbug.com/1023334
Design doc:https://docs.google.com/document/d/1nsQnwwY43OuA4PsSaMioiKA0c_M1eV1XX2q15YFA7cI/edit#heading=h.grah444pqbxl