Status Update
Comments
pt...@google.com <pt...@google.com> #2
Branch: androidx-master-dev
commit b90079595f33f58fece04026a97faa0d243acdb1
Author: Yuichi Araki <yaraki@google.com>
Date: Wed Sep 18 16:55:49 2019
Change the way to detect mismatch between POJO and query
This fixes cursor mismatch warnings with expandProjection.
Bug: 140759491
Test: QueryMethodProcessorTest
Change-Id: I7659002e5e0d1ef60fc1af2a625c0c36da0664d8
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
M room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt
pt...@google.com <pt...@google.com> #3
bu...@google.com <bu...@google.com> #4
Branch: androidx-master-dev
commit bdde5a1a970ddc9007b28de4aa29d60ffa588f08
Author: Yigit Boyar <yboyar@google.com>
Date: Thu Apr 16 16:47:05 2020
Re-factor how errors are dismissed when query is re-written
This CL changes how we handle errors/warnings if query is
re-written.
There was a bug in expandProjection where we would report warnings
for things that Room already fixes automatically (
The solution to that problem (I7659002e5e0d1ef60fc1af2a625c0c36da0664d8)
solved it by deferring validating of columns until after re-write
decision is made. Unfortunately, this required changing PojoRowAdapter
to have a dummy mapping until it is validating, make it hard to use
as it does have a non-null mapping which is not useful.
This CL partially reverts that change and instead rely on the log
deferring logic we have in Context. This way, we don't need to break
the stability of PojoRowAdapter while still having the ability to
drop warnings that room fixes. This will also play nicer when we
have different query re-writing options that can use more information
about the query results.
Bug: 153387066
Bug: 140759491
Test: existing tests pass
Change-Id: I2ec967c763d33d7a3ff02c1a13c6953b460d1e5f
M room/compiler/src/main/kotlin/androidx/room/log/RLog.kt
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
ch...@gmail.com <ch...@gmail.com> #5
I created a small test application with a WebView and a website that downloads a file with the contentDisposition set as mentioned above (
The application downloads this file, but names it "download-file.txt" and does not use the filename specified in the contentDisposition.
bu...@google.com <bu...@google.com>
pb...@google.com <pb...@google.com> #6
Thank you for the test application. I can confirm the issue.
The problem is the parsing of the content-disposition, as implemented by
The immediate issue is that the regular expression fails if it encounters unexpected content, such as filename*
instead of simply ignoring it.
Ideally it should also respect filename*
values. As per the RFC, a filename*
option should be preferred.
be...@google.com <be...@google.com> #7
The filename*
.
I see that
I haven't looked at any of the rest of the spec but it might not only be filename*
that we need to update as part of this.
We should probably treat this as a feature request.
nt...@google.com <nt...@google.com> #8
We discussed this today. Some ideas include:
- We could update the Android framework code for this API (have not determined how difficult this would be). This would fix the issue only for new Android OS versions, however an app developer could copy this open source implementation into their own app.
- We could consider porting the implementation into our
androidx.webkit
library. That would let developers get an updated implementation that works on any OS version. This doesn't necessarily even need to call into chromium code, since it seems the current version of the API is implemented without calling chromium code.
I agree this is best categorized as a feature request.
pb...@google.com <pb...@google.com>
ap...@google.com <ap...@google.com> #9
Branch: androidx-main
commit df6bc29927fe53578c08ed0f23a417281728357a
Author: Peter Birk Pakkenberg <pbirk@google.com>
Date: Tue Dec 05 14:15:20 2023
Add URLUtilCompat class with new implementations
These methods can be used by the android.webkit.DownloadListener interface
to determine the filename suggested by the server.
The methods are an update to android.webkitURLUtil.
Bug: 309927164
Test: Added URLUtilTest.java
Change-Id: Ie4d6a8d0349a8a19c85a15fcb900e947146558d5
A webkit/integration-tests/instrumentation/src/androidTest/java/androidx/webkit/URLUtilCompatTest.java
A webkit/webkit/src/main/java/androidx/webkit/URLUtilCompat.java
pb...@google.com <pb...@google.com> #10
Filed
pb...@google.com <pb...@google.com>
ap...@google.com <ap...@google.com> #11
Branch: androidx-main
commit 9fcc12508205bcaba61c3fe2a770f3ff6833c88d
Author: Peter Birk Pakkenberg <pbirk@google.com>
Date: Wed Jan 10 11:15:07 2024
Unhide URLUtilCompat
RelNote: """Add compatibility for `URLUtil.guessFileName`. The
compatibility version supports parsing of `Content-Disposition`
headers that use the `filename*` encoded value attribute as defined
in [RFC 6266](
The compatibility API also directly exposes a method to parse the
`Content-Disposition` header where a suggested file name based on
URL and MIME-type is not desired."""
Fixes: 309927164
Test: N/A - unhide API
Change-Id: If6ae780cbb49f2092f22bd796a6eccb34f25e877
M webkit/webkit/api/current.txt
M webkit/webkit/api/restricted_current.txt
M webkit/webkit/src/main/java/androidx/webkit/URLUtilCompat.java
Description
Component used: android.webkit.URLUtil.guess Version used: Android SDK 34 Devices/Android versions reproduced on: Android 13/14 Pixel 4/5
The issue is that the regex matching the contentDisposition to retrieve the filename does not support the "filename*"-directive which allows for a specific encoding. Thus, the following input for contentDisposition is ignored and instead the filename is guessed based on the url: attachment; filename*=UTF-8''Test.png; filename="Test.png"
See here for more information on the Content-Disposition.