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.

Reply via email to