Contact emails

ds...@google.com, memm...@google.com

Explainer

https://github.com/whatwg/fs/blob/main/proposals/MultipleReadersWriters.md

Specification

https://github.com/whatwg/fs/pull/151

Summary

Currently, only one FileSystemSyncAccessHandle may be open at a time per
file, preventing an origin from reading and writing to the same file from
multiple tabs easily. Conversely, multiple FileSystemWritableFileStreams
can be simultaneously open, letting multiple writers clobber each other.

Introducing new locking modes for FileSystemSyncAccessHandle and
FileSystemWritableFileStream allows opening either multiple readers/writers
or an exclusive writer to a file entry, depending on the application's use
case.

```

handle.createSyncAccessHandle({ mode: 'read-only' });

handle.createSyncAccessHandle({ mode: 'readwrite-unsafe' });

handle.createWritable({ mode: 'exclusive' });

```


Blink component

Blink>Storage>FileSystem
<https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EStorage%3EFileSystem>

TAG review

https://github.com/w3ctag/design-reviews/issues/845

TAG review status

Issues addressed

Origin Trial documentation link

https://developer.chrome.com/blog/new-dev-trial-for-multiple-readers-and-writers/

Risks

Interoperability and Compatibility

Gecko: Positive (https://github.com/mozilla/standards-positions/issues/861)

WebKit: No Signal (https://github.com/WebKit/standards-positions/issues/238)

Web developers: Positive (https://github.com/whatwg/fs/issues/34)

Other signals: Emscripten plans to utilize multiple readers and writers for
performance improvement, and sites using Emscripten will be able to take
advantage of this integration.

WebView application risks

Does this intent deprecate or change behavior of existing APIs, such that
it has potentially high risk for Android WebView-based applications?

None


Debuggability

Feature is web exposed through WebIDL changes. No additional implementation
effort is required.


Will this feature be supported on all six Blink platforms (Windows, Mac,
Linux, Chrome OS, Android, and Android WebView)?

Yes

Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
?

WPTs have been added that fully test the behavior of the new locking modes.
They additionally test the interactions between combinations of primitives,
their different modes, and file handle operations.

https://wpt.fyi/results/fs/FileSystemFileHandle-cross-primitive-locking.https.tentative.worker.html?label=experimental&label=master&aligned

https://wpt.fyi/results/fs/FileSystemFileHandle-sync-access-handle-lock-modes.https.tentative.worker.html?label=experimental&label=master&aligned

https://wpt.fyi/results/fs/FileSystemFileHandle-writable-file-stream-lock-modes.https.tentative.worker.html?label=experimental&label=master&aligned


Flag name on chrome://flags

file-system-access-locking-scheme

Finch feature name

FileSystemAccessLockingScheme

Requires code in //chrome?

False

Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=1382215

Launch bug

https://launch.corp.google.com/launch/4261043

Estimated milestones

Shipping on desktop

121





Anticipated spec changes

Discussion: https://github.com/whatwg/fs/issues/34

No open issues that introduce web compat/interop risk.


Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5172892632875008

Links to previous Intent discussions

Intent to prototype:
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPscNz5Oi-z6-%2BvTVyf9BNgvVnLZeQo5nfzyRhEZ_F400tTP3w%40mail.gmail.com

-- 
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 on the web visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAO4d-Ss1eT-GU98ysscmpzbw5cJDGjSxRBMBhwweir7Q%2B1Q8RQ%40mail.gmail.com.

Reply via email to