Intent to Ship: Support transactional batchUpdate() and disallow batch inner locks
Contact emails yao...@chromium.org cam...@chromium.org jkar...@chromium.org saraak...@google.com kaskulikow...@google.com Explainer https://github.com/WICG/shared-storage#proposed-api-surface <https://github.com/WICG/shared-storage#proposed-api-surface:~:text=Execute%20methods%20in%20order.%20All%20updates%20within%20a%20batchUpdate()%20call%20are%20executed%20as%20a%20single%20unit%20of%20work.%20If%20any%20method%20fails%2C%20none%20of%20them%20will%20commit.> Specification https://wicg.github.io/shared-storage/#batch-update Summary We are modifying the `sharedStorage.batchUpdate(methods)` API, introduced in the I2S <https://groups.google.com/a/chromium.org/g/blink-dev/c/8kNUZpULS-I/m/tW6DuDzMBQAJ> 'Adding Web Locks Support to Shared Storage', to enforce atomicity. This involves treating the entire `batchUpdate()` as a single transaction, rather than executing methods independently. For simplicity, we do not support locks for the individual methods within the batchUpdate, but only on the batchUpdate itself. Blink component Blink>Storage>SharedStorage <https://bugs.chromium.org/p/chromium/issues/list?q=component%3ABlink%3EStorage%3ESharedStorage&can=2> TAG review FYI <https://github.com/w3ctag/design-reviews/issues/747#issuecomment-2828342679> TAG review status TAG is unsatisfied <https://github.com/w3ctag/design-reviews/issues/747> with the underlying API Risks Compatibility This change is not backward compatible. Specifically: - JavaScript `batchUpdate()` calls specifying inner method locks will now throw an exception. - "Shared-Storage-Write" response headers specifying inner method locks will cause the entire operation to be ignored. Since `batchUpdate()` was recently released, it has not yet been adopted and the Chrome Features Dashboard <https://chromestatus.com/metrics/feature/timeline/popularity/5210> confirms that this change should not break any sites. Interoperability Gecko: No signal WebKit: No signal Web developers: No signal Other signals: 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 Security / Privacy No concerns. Debuggability Shared Storage worklets can be inspected within DevTools: Debug Shared Storage worklets with DevTools <https://developers.google.com/privacy-sandbox/private-advertising/shared-storage/debugging#debug_shared_storage_worklets_with_devtools> We are working on adding the `withLock` parameter and a `batchUpdate()` event to the Application -> Shared Storage panel in DevTools. Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)? All but WebView Is this feature fully tested by web-platform-tests <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> ? Yes Finch feature name SharedStorageTransactionalBatchUpdate Requires code in //chrome? No Estimated milestones We intend to ship in M137 Link to entry on the Chrome Platform Status https://chromestatus.com/feature/5763021961691136 -- 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/35e180ef-17df-474a-a5e5-7479fd9212b4n%40chromium.org.