LGTM1 conditional on all the PRs landing

On Thu, Jan 2, 2025 at 4:07 PM Josh Karlin <jkar...@chromium.org> wrote:

>
>
> On Thu, Jan 2, 2025 at 9:57 AM Yoav Weiss (@Shopify) <
> yoavwe...@chromium.org> wrote:
>
>>
>>
>> On Friday, December 20, 2024 at 6:34:04 PM UTC+1 Josh Karlin wrote:
>>
>> Contact emails
>>
>> yao...@chromium.org
>>
>> cam...@chromium.org
>>
>> jkar...@chromium.org
>>
>> rohitgu...@chromium.org
>>
>> ren...@google.com
>>
>> saraak...@google.com
>>
>> Explainer
>>
>> https://github.com/WICG/shared-storage/pull/199
>>
>>
>> Are there any explainer sections you can point at that won't require
>> reading through PR diffs?
>>
>
> It's sort of riddled throughout the explainer
> <https://github.com/WICG/shared-storage> but usage within the worklet is
> documented here
> <https://github.com/WICG/shared-storage#:~:text=Private%20Aggregation%20reports.-,navigator.locks.request,-(resource%2C%20callback)>
>  and
> using locks from outside the worklet is described here
> <https://github.com/WICG/shared-storage?tab=readme-ov-file#locking-for-modifier-methods>
> .
>
>
>>
>>
>>
>> Specification
>>
>> https://github.com/WICG/shared-storage/pull/209
>>
>> https://github.com/WICG/shared-storage/pull/211 (anticipated)
>>
>> https://github.com/WICG/shared-storage/pull/213 (anticipated)
>>
>>
>> Are the "anticipated" parts part of this intent? Are you planning to land
>> those PRs before shipping?
>>
>
> Sorry, I should have removed the (anticipated) notes. Yes, they're part of
> the proposal and will land before shipping.
>
> Happy new year!
>

Happy new year!!


>
> Josh
>
>
>>
>>
>>
>> Summary
>>
>> Today, concurrent execution of shared storage worklets can lead to data
>> inconsistencies due to race conditions. To address this issue, we propose
>> integrating the Web Locks API into Shared Storage:
>>
>>    1.
>>
>>    The navigator.locks.request() API is exposed to the shared storage
>>    worklet, to be able to request a lock and handle callback after the lock 
>> is
>>    granted.
>>    2.
>>
>>    All shared storage modifier methods now accept an optional {
>>    withLock: <lock name> } parameter. The modifier method will acquire the
>>    lock on the designated resource before executing.
>>    3.
>>
>>    A batchUpdate(methods, options) API is introduced in all applicable
>>    contexts. It first acquires a lock on the designated resource and then
>>    executes methods in order.
>>    4.
>>
>>    The 'Shared-Storage-Write' response header is now treated as a single
>>    batchUpdate(), and allows configuring a lock for the entire batch via:
>>    "options; with_lock=<lock name>".
>>
>>
>> The shared storage locks' partition aligns with the shared storage data's
>> partition -- locks are organized by the shared storage origin, and are
>> independent from any locks used in Window or Worker context.
>>
>> 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-2557353877>
>>
>> TAG review status
>>
>> TAG is unsatisfied <https://github.com/w3ctag/design-reviews/issues/747>
>> with the underlying API
>>
>> Risks
>>
>> Interoperability and Compatibility
>>
>> The changes are fully backward compatible.
>>
>> Gecko: No signal
>>
>> WebKit: No signal
>>
>> Web developers: Web locks were requested by developers for use with
>> private aggregation.
>>
>>
>> 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. Shared Storage web locks have their own partition which is
>> not readable in normal js contexts. The scope and visibility of Shared
>> Storage web locks aligns with the scope (i.e., per-origin) and visibility
>> (i.e., only the worklet is allowed to read/wait on a lock) of shared
>> storage data.
>>
>> 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
>>
>> SharedStorageWebLocks
>>
>> Requires code in //chrome?
>>
>> No
>>
>> Estimated milestones
>>
>> M133
>>
>> Link to entry on the Chrome Platform Status
>>
>> https://chromestatus.com/feature/5133950203461632
>>
>>

-- 
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/CAOmohSJgi167U-gE2k%3DD1v2rvmbWhXLM8gkx05%2B1XKDHXtB%2BMw%40mail.gmail.com.

Reply via email to