Currently, it is not possible to remove a file or directory given its handle. You must obtain the handle of the parent directory and call FileSystemDirectoryHandle::removeEntry().
Introducing a new method, FileSystemHandle::remove(), enables the common use case where you obtain a file handle from showSaveFilePicker(), but then decide you don't want to save after all, and delete the file.
Gecko: No signal (yet - https://github.com/mozilla/standards-positions/issues/716)
WebKit: Positive (https://github.com/WebKit/standards-positions/issues/104)
Web developers: Positive (https://github.com/WICG/file-system-access/issues/214) Also https://crbug.com/1114923
This will significantly improve the ergonomics of the API.
Currently, if a file handle is obtained via the showSaveFilePicker() API, the site has no way to remove the file if the user changes their mind and wants the file deleted, leaving the file system in an awkward state. The remove() method fills this gap.
Files and directories will only be removable if the user has explicitly granted read/write access to the handle.
This method will take an exclusive read/write lock to the file. It's possible that the file is locked by another site (e.g. if the site has an open FileSystemWritableFileStream to the file). In this case, the remove() operation will fail with a locking error. The site is aware that the file is locked, but it does not know how or by whom. This is not a concern.
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
Yes - currently in WICG/file-system-access but will be moved to whatwg/fs upon approval
Shipping in M110
This intent message was generated by Chrome Platform Status.
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+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8961afdb-9dd2-44f6-99b0-c2790f7b018fn%40chromium.org.