Thanks for the update. A bit of a wait but sounds like we'll get there in the end.
On Mon, 30 Jun 2025 at 20:04, Torne (Richard Coles) <to...@chromium.org> wrote: > On Mon, 30 Jun 2025 at 11:42, 'Ashley Gullen' via blink-dev < > blink-dev@chromium.org> wrote: > >> Hi folks, apologies for raising an old thread, but it's not currently >> clear what the status of File System Access is for Android WebView. Have >> the necessary changes for WebChromeClient#onShowFileChooser() shipped? >> We're asking Cordova to support this on Android. They already have an >> onShowFileChooser() handler but it doesn't seem to work for File System >> Access. In the issue there has been some confusion over what the status of >> this is and what needs changing to support File System Access: >> https://github.com/apache/cordova-android/issues/1776 >> Could someone from Google advise? Many thanks. >> > > Supporting the File System Access API requires changes to the existing > WebViewClient.onShowFileChooser callback: adding a read/write permission > flag, and a mode to request opening a folder instead of a file. Existing > apps are not expecting to receive these new calls and their code might > handle them incorrectly (because they won't be aware of the new > modes/flags), so the File System Access API is disabled by default. > > The new callback flags and behavior were intended to be part of Android 16 > (API36) and be enabled for apps which set their targetSdkVersion to 36 or > later, but unfortunately this wasn't ready in time for the Android 16 > release. We are instead working on shipping the new APIs and behavior in > the next major Android release in 2026. > > Best regards >> >> Ashley >> >> >> >> >> On Tue, 29 Oct 2024 at 07:27, Joel Hockey <joelhoc...@chromium.org> >> wrote: >> >>> Thanks Tom and Ashley, I've created: >>> >>> crbug.com/376097107 - Android FileSystemAccess mime filters are being >>> ignored >>> crbug.com/376097630 - Android FileSystemAccess opening folder with many >>> files causes chrome to become unresponsive >>> crbug.com/376097108 - Android FileSystemAccess save-as does not allow >>> creating a new file, only selecting existing >>> crbug.com/376097631 - Android FileSystemAccess save as project folder >>> fails >>> >>> I don't think clank (chrome on android) currently has any code that does >>> file-saveas, so the interface between chrome and the OS might not have all >>> the required Intent options. I'll take a look at that and the other issues. >>> >>> Peter, apps that use webview will need to implement >>> WebChromeClient#onShowFileChooser() for the JS code >>> window.showOpenFilePicker() / showDirectoryPicker() / >>> showSaveFilePicker(). I am working on adding more options to >>> WebChromeClient.FileChooserParams to make it clearer when each is being >>> used. The additional options will be available in a future (should be the >>> next) API release. For permissions, the assumption is that if / when the >>> app makes files available to JS code via onShowFileChooser(), the files are >>> considered to have edit permissions. Any app that does not want to allow >>> JS code to edit files should either not implement onShowFileChooser(), or >>> should apply filtering. >>> >>> On Mon, Oct 28, 2024 at 10:57 PM Peter Beverloo <pe...@chromium.org> >>> wrote: >>> >>>> Hi Joel, could you summarise how this has ended up working on WebView, >>>> as there's neither permissions nor UI there? Will apps using WebView have >>>> to adopt anything? >>>> >>>> Thanks, >>>> Peter >>>> >>>> >>>> On Mon, Oct 28, 2024 at 12:50 PM 'Ashley Gullen' via blink-dev < >>>> blink-dev@chromium.org> wrote: >>>> >>>>> I'd be very happy to see the File System Access API ship on Android! >>>>> However from my testing it doesn't look ready yet. Using our PWA >>>>> Construct ( >>>>> https://editor.construct.net) in Canary 132, create a new empty >>>>> project and try saving it with Menu > Project > Save as, and: >>>>> >>>>> - Choosing 'Save as single file' shows a range of apps (some >>>>> inappropriate including Camera) - choosing 'Files' then shows what >>>>> appears >>>>> to be a file picker. The aim here is to have a save-as operation and be >>>>> able to choose a new file - but there doesn't seem to be any obvious >>>>> way to >>>>> choose a new filename here, it looks like you can only overwrite >>>>> existing >>>>> files. >>>>> - Choosing 'Save as project folder' shows a folder picker right >>>>> away. If I go to Documents, create a new folder named TestProject, tap >>>>> 'Use >>>>> this folder', approve the permission prompt (saying 'Allow'), and then >>>>> approve a second permission prompt (this one saying 'Edit files'), it >>>>> then >>>>> shows an 'Unable to save project' error message. This appears to be >>>>> because >>>>> it throws 'InvalidStateError: An operation that depends on state >>>>> cached in >>>>> an interface object was made but the state had changed since it was >>>>> read >>>>> from disk.' >>>>> >>>>> These are basic use cases for the File System Access API in our PWA. >>>>> Would be great if someone could take a look. >>>>> >>>>> >>>>> On Mon, 28 Oct 2024 at 09:09, 'Thomas Steiner' via blink-dev < >>>>> blink-dev@chromium.org> wrote: >>>>> >>>>>> Wow, that's fantastic news! >>>>>> >>>>>> I tried the feature on 132.0.6803.0 on Android VanillaIceCream with >>>>>> this demo >>>>>> <https://googlechromelabs.github.io/browser-fs-access/demo/> that >>>>>> uses the main window, a same origin iframe, and a cross origin iframe >>>>>> (the >>>>>> last one should not work). >>>>>> >>>>>> - Opening a single file and multiple files works just fine. A >>>>>> slight user irritation was the camera and microphone permission, but >>>>>> it >>>>>> made sense once I saw the picker, which is a camera and the files >>>>>> icons. >>>>>> - File MIME type filters seem to be ignored. I filtered on images >>>>>> and texts, but could open a PDF. >>>>>> - Opening folders works just fine. You need to be careful to not >>>>>> open a too big folder. Attempting to open DCIM caused Canary to become >>>>>> unresponsive. >>>>>> - Saving seems to not work quite yet. While it did trigger the >>>>>> same picker with the files and the camera icons (the camera should >>>>>> probably >>>>>> not be there, it should just enter the files flow directly), there >>>>>> was in >>>>>> the end no obvious way for me to say "yes, save here", that is, some >>>>>> sort >>>>>> of file name dialog. Did I not understand what I needed to do? >>>>>> >>>>>> Amazing work. I suppose the rest is polish and already known issues. >>>>>> >>>>>> Cheers, >>>>>> Tom >>>>>> >>>>>> >>>>>> On Sat, Oct 26, 2024 at 1:06 AM Joel Hockey <joelhoc...@chromium.org> >>>>>> wrote: >>>>>> >>>>>>> The FileSystemAccessLocal feature has just been enabled for android >>>>>>> in M132. >>>>>>> >>>>>>> On Thu, Sep 5, 2024 at 7:30 PM Thomas Steiner <to...@google.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Very excited for this feature to come, it's a frequently requested >>>>>>>> gap so far—frequently enough to link to the FSA for Android bug from >>>>>>>> our developer-facing documentation >>>>>>>> <https://developer.chrome.com/docs/capabilities/web-apis/file-system-access#:~:text=Support%20for%20Android%20is%20being%20worked%20on%20in%20the%20context%20of%20crbug.com/1011535.> >>>>>>>> . >>>>>>>> >>>>>>>> >>>>>>>>> There is one area where I am considering proposing a change to the >>>>>>>>> spec that showOpenFilePicker() could take a boolean hint to indicate >>>>>>>>> the >>>>>>>>> intention of whether files are intended for read-only vs writable >>>>>>>>> which >>>>>>>>> would allow Android to choose between Intent GET_CONTENT (read-only, >>>>>>>>> but >>>>>>>>> supported by more providers) vs OPEN_DOCUMENT (allows for writing to >>>>>>>>> files, >>>>>>>>> but not supported by as many providers). >>>>>>>>> >>>>>>>> >>>>>>>> I've just commented on a relevant GitHub issue >>>>>>>> <https://github.com/WICG/file-system-access/issues/302#issuecomment-2331041290> >>>>>>>> and >>>>>>>> tagged you. >>>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>>> Thomas Steiner, PhD—Developer Relations Engineer (blog.tomayac.com, >>>>>> toot.cafe/@tomayac) >>>>>> >>>>>> Google Germany GmbH, ABC-Str. 19, 20354 Hamburg, Germany >>>>>> Geschäftsführer: Paul Manicle, Liana Sebastian >>>>>> Registergericht und -nummer: Hamburg, HRB 86891 >>>>>> >>>>>> ----- BEGIN PGP SIGNATURE ----- >>>>>> Version: GnuPG v2.4.3 (GNU/Linux) >>>>>> >>>>>> iFy0uwAntT0bE3xtRa5AfeCheCkthAtTh3reSabiGbl0ck >>>>>> 0fjumBl3DCharaCTersAttH3b0ttom.xKcd.cOm/1181. >>>>>> ----- END PGP SIGNATURE ----- >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "blink-dev" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to blink-dev+unsubscr...@chromium.org. >>>>>> To view this discussion visit >>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALgRrL%3D05USBgLCdEgg3k9bcxB%2BzU3YXpXU9i8egymV3KJLQbA%40mail.gmail.com >>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALgRrL%3D05USBgLCdEgg3k9bcxB%2BzU3YXpXU9i8egymV3KJLQbA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "blink-dev" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to blink-dev+unsubscr...@chromium.org. >>>>> To view this discussion visit >>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAABs73jsM-sOYMsapi%3DEdVQq0w7N8EgdzBn5afxTMaMg8Lf10w%40mail.gmail.com >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAABs73jsM-sOYMsapi%3DEdVQq0w7N8EgdzBn5afxTMaMg8Lf10w%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> >>>> -- >> You received this message because you are subscribed to the Google Groups >> "blink-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to blink-dev+unsubscr...@chromium.org. >> To view this discussion visit >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAABs73iS4Gdj3dz-8c7ZAfnXbFuDuv83J%2BUX9xoo2SsTtw9rcA%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAABs73iS4Gdj3dz-8c7ZAfnXbFuDuv83J%2BUX9xoo2SsTtw9rcA%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "blink-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscr...@chromium.org. To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAABs73iEM7LNq9KETuXcWt2kYehJipsF%2BxZMP6Qg0i3z9-Ze6Q%40mail.gmail.com.