Status Update
Comments
ap...@google.com <ap...@google.com> #2
Fixed with the following CL (missed tagging this bug):
There will be additional follow up work (handling new mainline versions that fix the issue), but we'll file separate bugs to improve that.
av...@google.com <av...@google.com>
av...@google.com <av...@google.com> #3
How To Get Method Tracing Working in Microbench
Options:
1) Flash API 23 through 25
2) Flash API 31 through 33, and disable wifi/network on the device
Not connecting to the network prevents mainline updates. You can validate that your device hasn't taken a problematic mainline version with the following shell command:
adb shell cmd package list packages --show-versioncode --apex-only art
You should see e.g.:
package:com.google.android.art versionCode:320000000
If the first two digits of the version code are less than 34, you're good, method tracing will work and be on by default in microbench.
3) Force Mainline Update with Fix (will be documented later)
av...@google.com <av...@google.com> #4
Note: Will add testing when more of the API has been implemented.
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-main
Author: Adam Walls <
Link:
[WebView] Add API to configure CHIPS
Expand for full commit details
[WebView] Add API to configure CHIPS
This adds an API to allow Android developers to configure CHIPS globally. This is done with ProcessGlobalConfig. In order to prevent this from being published/used prior to Android B's release, RestrictTo annotation is used.
Design: go/chips-android-apis-webview
Test: Will add testing in a follow-up CL.
Bug: 364904765
Change-Id: If6d630562be7209eb2ab00da2dbad9398ba0553e
Files:
- M
webkit/webkit/src/main/java/androidx/webkit/ProcessGlobalConfig.java
- M
webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
- M
webkit/webkit/src/main/java/androidx/webkit/internal/StartupFeatures.java
- M
webkit/webkit/src/main/java/androidx/webkit/internal/WebViewFeatureInternal.java
Hash: 4fe72afdcf64cad8b2399ca7a28d1aa57a05f976
Date: Thu Oct 24 17:35:26 2024
ap...@google.com <ap...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-main
Author: Adam Walls <
Link:
Refactor common Webkit test classes into test.common module.
Expand for full commit details
Refactor common Webkit test classes into test.common module.
This is intended to enable new androidx.webkit test targets so that we
do not need to use the Orchestrator annotation to create new test
processes. This is intended as a refactor to reduce the CL size in
aosp/3371538.
The new androidx.webkit.test.common module was created using
the development/project-creator/create_project.py script.
Test: ./webkit/run_instrumentation_tests.sh
Bug: 364904765
Change-Id: If68173a88bd5267d3aa19986ba3f4486d9e17b64
Files:
- M
settings.gradle
- A
webkit/integration-tests/common/build.gradle
- M
webkit/integration-tests/common/src/main/java/androidx/webkit/test/common/PollingCheck.java
- A
webkit/integration-tests/common/src/main/java/androidx/webkit/test/common/TestWebMessageListener.java
- M
webkit/integration-tests/common/src/main/java/androidx/webkit/test/common/WebViewOnUiThread.java
- M
webkit/integration-tests/common/src/main/java/androidx/webkit/test/common/WebkitUtils.java
- M
webkit/integration-tests/instrumentation/build.gradle
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/AsyncStartUpTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/CookieManagerCompatTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/MultiProfileTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/PostMessageTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/ProxyControllerTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/ServiceWorkerClientCompatTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/ServiceWorkerWebSettingsCompatTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/TracingControllerTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebSettingsCompatDarkModeTestBase.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebSettingsCompatTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebSettingsCompatUserAgentMetadataTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebStorageTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewClientCompatTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewCompatTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewDocumentStartJavaScriptTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewRenderProcessClientTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewRenderProcessTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewWebMessageCompatTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewWebMessageListenerTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/internal/AssetHelperTest.java
- M
webkit/integration-tests/instrumentation/src/androidTestTargetSdk32/java/androidx/webkit/WebSettingsCompatForceDarkTest.java
- M
webkit/integration-tests/instrumentation/src/androidTestTargetSdkLatest/java/androidx/webkit/WebSettingsCompatDarkThemeTest.java
- M
webkit/integration-tests/instrumentation/src/androidTestTargetSdkLatest/java/androidx/webkit/WebSettingsCompatLightThemeTest.java
Hash: 463387393fce755928325a57d49cec218631a6a3
Date: Fri Dec 13 23:24:49 2024
ap...@google.com <ap...@google.com> #7
Project: platform/frameworks/support
Branch: androidx-main
Author: Adam Walls <
Link:
[WebView] Add CHIPS testing via integration tests.
Expand for full commit details
[WebView] Add CHIPS testing via integration tests.
In order to test the enable partitioned cookies API added in
aosp/3318854, integration tests are added.
Note: Since test process restarts are not supported, and the startup
APIs can only be called once per process lifetime, this will avoid
errors by only testing with a single test case that covers a few
use cases.
Test: ./webkit/run_instrumentation_tests.sh
Bug: 364904765
Change-Id: I89354cb04bb92b954a5a51fac06133ebd6a3ae3a
Files:
- M
settings.gradle
- A
webkit/chips-enabled-integration-tests/instrumentation/build.gradle
- A
webkit/chips-enabled-integration-tests/instrumentation/src/androidTest/AndroidManifest.xml
- A
webkit/chips-enabled-integration-tests/instrumentation/src/androidTest/java/androidx/webkit/EnablePartitionedCookiesTest.java
- M
webkit/integration-tests/common/src/main/java/androidx/webkit/test/common/WebViewOnUiThread.java
- M
webkit/run_instrumentation_tests.sh
Hash: 200afa93c09543d6c7320a025fed7f2944689055
Date: Thu Dec 12 03:20:20 2024
ap...@google.com <ap...@google.com> #8
Project: platform/frameworks/support
Branch: androidx-main
Author: Adam Walls <
Link:
[WebView] Expose Enable CHIPS API
Expand for full commit details
[WebView] Expose Enable CHIPS API
aosp/3318854 introduced the enable CHIPS API hidden until it was
deemed ready for release. This exposes the API for use in apps.
Relnote: "Add setPartitionedCookiesEnabled API. This will allow
developers to enable and disable partitioned cookies in WebView. The
feature is available in WebView starting in M130."
Bug: 364904765
Test: ./webkit/run_instrumentation_tests.sh
Change-Id: Ic506a23471946d31b797397e2f71aef0f3ae481a
Files:
- M
webkit/webkit/api/current.txt
- M
webkit/webkit/api/restricted_current.txt
- M
webkit/webkit/src/main/java/androidx/webkit/ProcessGlobalConfig.java
- M
webkit/webkit/src/main/java/androidx/webkit/WebViewFeature.java
- M
webkit/webkit/src/main/java/androidx/webkit/internal/StartupFeatures.java
Hash: 512bc1b685e6c5bbb563c33948b1c3b6b0ec9197
Date: Fri Dec 20 18:03:50 2024
av...@google.com <av...@google.com>
ap...@google.com <ap...@google.com> #9
Project: platform/frameworks/support
Branch: androidx-main
Author: Adam Walls <
Link:
Reformat affected classes from aosp/3406800.
Expand for full commit details
Reformat affected classes from aosp/3406800.
aosp/3406800 refactored some common classes that were not formatted
properly.
Bug: 364904765
Test: ./webkit/run_instrumentation_tests.sh
Change-Id: I328af103b753e575c25a383dd709e355a973b98f
Files:
- M
webkit/integration-tests/common/src/main/java/androidx/webkit/test/common/PollingCheck.java
- M
webkit/integration-tests/common/src/main/java/androidx/webkit/test/common/TestWebMessageListener.java
- M
webkit/integration-tests/common/src/main/java/androidx/webkit/test/common/WebViewOnUiThread.java
- M
webkit/integration-tests/common/src/main/java/androidx/webkit/test/common/WebkitUtils.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/AsyncStartUpTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/MultiProfileTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/PostMessageTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/ProxyControllerTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/ServiceWorkerClientCompatTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/ServiceWorkerWebSettingsCompatTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/TracingControllerTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebSettingsCompatDarkModeTestBase.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebSettingsCompatTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebSettingsCompatUserAgentMetadataTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebStorageTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewClientCompatTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewCompatTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewDocumentStartJavaScriptTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewRenderProcessClientTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewRenderProcessTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewWebMessageCompatTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/WebViewWebMessageListenerTest.java
- M
webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/internal/AssetHelperTest.java
Hash: 818530aa0c71b1b6e1cba00a39494794b45ed6c8
Date: Wed Dec 18 00:18:27 2024
pr...@google.com <pr...@google.com> #10
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.webkit:webkit:1.13.0-alpha03
ap...@google.com <ap...@google.com> #11
Project: chromium/src
Branch: main
Author: Adam Walls <
Link:
[WV] Fix adding switch to stale command line reference.
Expand for full commit details
[WV] Fix adding switch to stale command line reference.
Currently, the disable-partitioned-cookies, aka
kDisablePartitionedCookiesSwitch, is used to control CHIPS in WebView.
However, it is currently broken because it uses a stale reference to the
command line object. This is because it is called after the point in
WebView's startup where the native library is loaded and passes off its
command line switches in Java to the native equivalent. This causes
changes that make the old reference stale. It results in an incongruence
between Java and native command line switches, causing undefined and
unintended behavior with CHIPS in WebView.
This fixes this by using the getInstance method to get a fresh reference
to a valid instance of the command line. Another change limits the scope
of the object that caused the issue by adding a block around the code
that references it. Note: The default behavior will be set to on for
now, postponing the decision to change it at a later point.
testing for the glue layer later.
Low-Coverage-Reason: HARD_TO_TEST Though we are looking into adding
Bug: 364904765, 389121692
Test: See bug 389121692 for test instructions.
Change-Id: Icd9a04bbdc3a82197bf27bec428e60f05cd62243
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6171228
Auto-Submit: Adam Walls <avvall@chromium.org>
Reviewed-by: Richard (Torne) Coles <torne@chromium.org>
Commit-Queue: Adam Walls <avvall@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1413072}
Files:
- M
android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
Hash: fda51784ebf6743fdd47c1e6fc441fdb05d13945
Date: Wed Jan 29 11:42:08 2025
Description
We should add an API to allow Android developers to configure CHIPS globally. We are going to do this with ProcessGlobalConfig .
Design: go/chips-android-apis-webview