Contact emails
m...@chromium.org, oyip...@chromium.org, natt...@chromium.org
Spec
http://wicg.github.io/native-file-system/
Algorithms and normative text in the spec are still TODO but will be fleshed out during the experiment period.
Summary
An Origin Trial for Native File System API started in Chrome 78 and is scheduled to end in Chrome 81. The results from that Origin Trial are summarized in this document. The feedback we obtained is positive. That said, we'd like to test additional, frequently requested capabilities in a new origin trial starting in Chrome 82 (ending the new origin trial after Chrome 84).
Link to “Intent to Prototype” blink-dev discussion
https://groups.google.com/a/chromium.org/d/msg/blink-dev/U4rXcm5CE4Y/3XmVtoAPDwAJ
Original intent to experiment: https://groups.google.com/a/chromium.org/d/msg/blink-dev/noan0cgEBGQ/t8DuK8_hDwAJ
Request to Extend by one milestone in: https://groups.google.com/a/chromium.org/d/msg/blink-dev/7HasvKUZm5c/7k3QehJBCAAJ
Goals for experimentation
The goals for experimentation are very similar to our first I2E: gain knowledge about how users interact with the UI surfaces provided by this API, as well as figure out if the API surface as implemented is sufficient to support the use cases we are prioritizing.
We made a number of changes to both the API as well as the UI compared to our first experiment, as such despite having the same goals, we think there still is value in having a new experiment.
At a high level, the changes made since the previous iteration of the origin trial are:
Changes to the file writing API to integrate with WritableStream. Previously we used a custom API, and this brings us into better alignment with the rest of the platform..
Enable sending file and directory handles to other (same origin) frames and workers using postMessage. This enables off-main-thread processing of documents and data.
Added ability to store handles in IndexedDB, the most frequently requested feature during our first origin trial.
Changes to our permission model to support transferability and persistence. Permissions were previously scoped to the tab they were granted in, now permissions are shared among all same-origin tabs, improving alignment with other web platform APIs.
And finally the addition of two new methods: isSameEntry and resolve, which enable comparison of two handles to see if they are the same, and to figure out if one is a descendant of another.
Experimental timeline
When does the experiment start and expire?
M82: Experiment begins.
M84: Last milestone of the experiment.
M85: Planned general availability of the API.
Any risks when the experiment finishes?
Without this API websites using it will have to go back to <input type=file> and downloading blob URLs to be able to read from and write to the native file system. While not ideal, that should still give websites access to any data just as well. Even with this API a website will have to re-prompt the user for access to data written using it when a user revisits their website, so this doesn't make things materially worse, at least for reading data.
Additionally since this API lets you store new types of objects in IndexedDB, these objects will not be readable with the API disabled. Websites will have to be able to handle this.
Reason this experiment is being extended
We've made changes to both the UI and API surface that we feel warrant a new origin trial.
Ongoing technical constraints
None
Debuggability
Unfortunately DevTools doesn't currently support the new types stored in IndexedDB very well (values containing the new types just show up as "null", https://crbug.com/1059460). We will work on fixing this, but unfortunately didn't figure this out soon enough for M82. Otherwise there shouldn't be any need for special DevTools support.
Will this feature be supported on all five Blink platforms supported by Origin Trials (Windows, Mac, Linux, Chrome OS, and Android)?
Desktop platforms only (so no Android). We hope to support Android in future, but haven't figured out yet how exactly this should work and what the UI should look like. This origin trial will continue to exclude Android.
Link to entry on the feature dashboard
https://www.chromestatus.com/feature/6284708426022912
--
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/CA%2BOSsVZt30AZEA-XA8%2ByOgK5wJkCsG5xWvuXLL2JXJYUt9_KPg%40mail.gmail.com.