Status Update
Comments
il...@google.com <il...@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.
ap...@google.com <ap...@google.com> #3
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
il...@google.com <il...@google.com>
[Deleted User] <[Deleted User]> #4
The following release(s) address this bug:
androidx.webkit:webkit:1.6.0-alpha02
[Deleted User] <[Deleted User]> #5
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
il...@google.com <il...@google.com> #6
[Deleted User] <[Deleted User]> #7
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
pe...@gmail.com <pe...@gmail.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
co...@gmail.com <co...@gmail.com> #9
If you're working with Jetpack Navigation in Android and the generated classes don't import MainNavDirections, it usually points to an issue with your setup or the
co...@gmail.com <co...@gmail.com> #10
It sounds like you are dealing with a coding issue, possibly in a web development or React project. If MainNavDirections isn't being imported in generated classes, you may need to explicitly import it in your files. If you provide more specific details about your setup and the context
Description
Version used: 1.0.0-alpha01
Devices/Android versions reproduced on: N/A – compilation/build issue
If this is a bug in the library, we would appreciate if you could attach:
- Sample project to trigger the issue.
- A screenrecord or screenshots showing the issue (if UI related).
Steps to reproduce:
- Add a global action to a fragment that's in a different package than the main app package