On Tue, Oct 29, 2024 at 7:27 AM 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. > Great, thank you for the additional detail. Please feel free to reach out if there's bits/reviews we can help with! One thing to keep in mind is that there's already ~30k apps that have adopted the existing onShowFileChooser() w/ quite some daily usage, we should make sure that the defaults avoid any surprises there, security, privacy or otherwise. Thanks, Peter > > 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/CALt3x6mywnvpV8Wh0DLhZ5Yw9ZCgehsqFKRNMZKJMmn-8irVXw%40mail.gmail.com.