commit | da76baa99e1495a6bb391a76a909e4a39ddfde50 | [log] [tgz] |
---|---|---|
author | Joel Hockey <joelhockey@chromium.org> | Tue Jul 09 00:48:19 2024 |
committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Jul 09 00:48:19 2024 |
tree | 5c73dbf83d775dc8c9dc54e371bc008a3c2a6fdb | |
parent | 7159ceb2c3355e3f74e9b5c6787a4d40c892f990 [diff] |
Improve support for reading android virtual content uri as FilePath go/clank-files-clipboard-drag-drop When chrome does drag-drop of an image out of a renderer, it saves the image in memory as a virtual content-uri. This CL improves support for accessing the virtual content-uri. The DropDataProvider adds implementation of ContentProvider#openAssetFile() which returns an AssetFileDescriptor with the valid length. ContentUriUtils.getAssetFileDescriptor() is fixed to use ContentResolver#openAssetFileDescriptor() which will include the valid length, and adds a utility function getContentUriFileSize() which is used by file_util_posix.cc if fstat returns size=0. LocalFileStreamReader which is used when a renderer fetches the blob contents of a dropped file is changed to avoid calling seek() when initial offset is zero, and seek is not required. Any call to seek() fails on android for a virtual file. Bug: b/350860794 Low-Coverage-Reason: ContentUriUtils.java changes tested manually Change-Id: I9842d428c62ecbb3b9542dcd1a293b31791dbdf7 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5679910 Reviewed-by: Andrew Grieve <agrieve@chromium.org> Commit-Queue: Joel Hockey <joelhockey@chromium.org> Reviewed-by: Evan Stade <estade@chromium.org> Reviewed-by: Shu Yang <shuyng@google.com> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Cr-Commit-Position: refs/heads/main@{#1324600}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone
! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.