LGTM1. This seems like a good change for overall web consistency, and 
compat risks seem well-managed.

On Thursday, August 29, 2024 at 4:32:20 AM UTC+9 Cammie Smith Barnes wrote:

> Intent to Ship: Shared Storage: Allowing Cross-Origin Script in addModule 
> & Aligning createWorklet
>
> Contact emailscam...@chromium.org, jkar...@chromium.org, 
> yao...@chromium.org, ashame...@google.com
> Explainerhttps://github.com/WICG/shared-storage/blob/main/README.md
> Specificationhttps://github.com/WICG/shared-storage/pull/161
> SummaryWe now allow sharedStorage.worklet.addModule to load cross-origin 
> script, while still using the invoking context's origin as the data 
> partition origin for accessing shared storage data. We also align the 
> behavior of sharedStorage.createWorklet, so that when it loads a 
> cross-origin script, it also uses the invoking context's origin as the data 
> partition origin by default (instead of using the script origin as it did 
> when initially implemented). Finally, to preserve the ability to use the 
> script's origin as the data partition origin, we introduce a new dataOrigin 
> option for createWorklet.
> We have received feedback from developers stating they wanted to be able 
> to host and run their worklet script on a separate origin from the origin 
> that owns and writes their shared storage data. So we remove the 
> same-origin restriction for addModule. Note that, when the worklet script 
> is cross-origin to the invoking context, the invoking context's origin is 
> used as the partition origin for accessing shared storage.
> To help avoid developer confusion in the long term, we align the default 
> behavior of createWorklet to use the invoking context's origin instead of 
> the script origin as its data partition origin. This is a breaking change, 
> but current usage of createWorklet is low as it was introduced in M125 and 
> those that are using it have upgraded to a forward-compatible incantation. 
> We also introduce a dataOrigin option that can be passed to use the 
> previous behavior.
>
> Blink componentBlink>Storage>SharedStorage 
> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3EStorage%3ESharedStorage>
> TAG review & statusNotification of the change is here 
> <https://github.com/w3ctag/design-reviews/issues/747#issuecomment-2288670353> 
> but not expecting feedback as the entire Shared Storage feature is resolved 
> as unsatisfied.
>
> Risks
>
> Interoperability and CompatibilityThere are no interop risks as no other 
> browser has implemented shared storage. There is a compat risk for the 
> recently released createWorklet API. The worklet created by createWorklet 
> before this change had the data partition of the script’s origin. We’re 
> changing it, to align with addModule, to use the calling context’s origin 
> instead. We’re monitoring usage here 
> <https://chromestatus.com/metrics/feature/timeline/popularity/5007> of 
> the backwards-incompatible usage of the existing API and reaching out to 
> folks using it to let them know that they should make the following 
> forward-compatible change if they want the existing default behavior of 
> createWorklet to continue to function after this change:
> before: sharedStorage.createWorklet(worklet_url);after: 
> sharedStorage.createWorklet(worklet_url, { dataOrigin: “script-origin” });
> The dataOrigin option will be ignored on browsers previous to this change, 
> and honored correctly after. 
> As of today, all users have switched to the forward-compatible incantation. 
> We are also monitoring usage of addModule with scripts that are 
> cross-origin to the calling context here 
> <https://chromestatus.com/metrics/feature/timeline/popularity/5028>, as 
> those will suddenly work when they did not before which could be surprising 
> to developers. As anticipated, this usage is extremely low (.00001% page 
> loads).
>
> Gecko: Negative on shared storage
> WebKit: Negative on shared storage
> Web developers: Positive, but there is follow-up work to allow 
> createWorklet() to serve the script from a different origin than the data 
> origin which is what folks ultimately want. That change will be 
> non-breaking. This work is a first step in that direction (allowing 
> addModule to be cross-origin).
> Other signals:
> WebView application risksDoes this intent deprecate or change behavior of 
> existing APIs, such that it has potentially high risk for Android 
> WebView-based applications?None
>
> DebuggabilityShared Storage worklets can be debugged in devtools.
>
> Will this feature be supported on all six Blink platforms (Windows, Mac, 
> Linux, ChromeOS, 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
> Flag name on chrome://flagsNone
> Finch feature nameSharedStorageCrossOriginScript and 
> SharedStorageCreateWorkletUseContextOriginByDefault
> Non-finch justificationNA
> Requires code in //chrome?False
> Estimated milestonesM130
>
> Anticipated spec changesNone
> Link to entry on the Chrome Platform Status
> https://chromestatus.com/feature/6531477832204288?gate=6576220452683776
> Links to previous Intent discussionsIntent to Prototype: 
> https://groups.google.com/a/chromium.org/g/blink-dev/c/YZ4XGewKVuk/m/v8CwKfq8AAAJ?utm_medium=email&utm_source=footer
>
> This intent message was generated by Chrome Platform Status 
> <https://chromestatus.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/a3c65cdb-a26a-4914-9787-bab33ca58b85n%40chromium.org.

Reply via email to