Hello - wondering whether this cross-origin feature reflected in the demo 
website https://shared-storage-demo.web.app/ ? That is, not 
cross-origin-worklet-select-url-and-verify-data-origin.tentative.https.sub.html 
<https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/shared-storage/cross-origin-worklet-select-url-and-verify-data-origin.tentative.https.sub.html>
 because 
it still depends on Chromium's testing framework - currently we've run into 
problems when testing the API in DevTools Console, and we think the demo 
website could be of greater assistance. Thanks!

On Monday, April 29, 2024 at 4:43:33 AM UTC-4 Yoav Weiss (@Shopify) wrote:

> LGTM3
>
> On Thu, Apr 25, 2024 at 5:57 PM Mike Taylor <mike...@chromium.org> wrote:
>
>> LGTM2.
>> On 4/24/24 5:45 PM, Yao Xiao wrote:
>>
>> Hi Yao,
>>
>> I see that https://github.com/WICG/shared-storage/pull/152 is still 
>>> open, can that be landed before we ship this?
>>
>> The PR landed just now.
>>
>> Also, can you point to the tests for this change?
>>
>> Yes. 
>> cross-origin-worklet-select-url-and-verify-data-origin.tentative.https.sub.html
>>  
>> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/external/wpt/shared-storage/cross-origin-worklet-select-url-and-verify-data-origin.tentative.https.sub.html>
>>  is 
>> a representative one. You can find other relevant tests in the same 
>> repository, by searching for "cross-origin".
>>
>> Best,
>> Yao
>>
>>
>> On Wed, Apr 24, 2024 at 4:02 PM Chris Harrelson <chri...@chromium.org> 
>> wrote:
>>
>>> Thanks for the further explanation! It was very helpful. 
>>>
>>> LGTM1, but please make sure to land that open PR before shipping.
>>>
>>> On Wed, Apr 24, 2024 at 10:48 AM Josh Karlin <jka...@chromium.org> 
>>> wrote:
>>>
>>>> Hey folks, I wanted to provide a bit more context on this change to 
>>>> help clarify the intention and any associated risks. 
>>>>
>>>> Today, when a third-party script runs on a page and wants to write data 
>>>> to shared storage, or use their shared storage data (e.g., create an 
>>>> aggregate report) under its own name, the script first needs to create a 
>>>> x-origin iframe and pass the data to that frame. This is because the 
>>>> origin 
>>>> used by shared storage is that of the context. This is cumbersome to the 
>>>> developer. They have to create an iframe document to listen for data 
>>>> (e.g., 
>>>> via name attribute, url query param, or postMessage) and act on that data 
>>>> (by writing to shared storage or starting a worklet). It's also terrible 
>>>> for resource usage and performance (the browser needs to navigate, load a 
>>>> document, and execute js).
>>>>
>>>> The primary focus of this change is to allow a third-party on a page to 
>>>> invoke its own worklet (with access to its own storage) directly, 
>>>> bypassing 
>>>> the need to create a x-origin iframe. This is accomplished by allowing 
>>>> x-origin urls to be specified in a new API, `window.sharedStorage.
>>>> createWorklet 
>>>> <https://github.com/WICG/shared-storage?tab=readme-ov-file#proposed-api-surface>`.
>>>>  
>>>> We are not changing the behavior of addModule, and we are not changing the 
>>>> capabilities of worklets. We're just making it easier to create x-origin 
>>>> worklets. In `createWorklet 
>>>> <https://github.com/WICG/shared-storage?tab=readme-ov-file#proposed-api-surface>`,
>>>>  
>>>> if a x-origin URL is specified, the response will require both 
>>>> `Shared-Storage-Cross-Origin-Worklet-Allowed: ?1` and CORS 
>>>> (Access-Control-Allow-Origin). That is, embedding a x-origin worklet is 
>>>> strictly opt-in. This is because a shared storage worklet has side-effects 
>>>> (e.g., sending reports, or selecting a url) which also consumes budget, 
>>>> and 
>>>> the worklet's origin may want to control who gets to use it. They should 
>>>> also (always a challenge on the web) take care to ensure that the data 
>>>> that 
>>>> they're receiving from the embedder is valid. 
>>>>
>>>> Another useful aspect of introducing `createWorklet`, is that it allows 
>>>> a document to host multiple shared storage worklets and call methods on 
>>>> them individually. This makes it easier for pages that might have multiple 
>>>> teams creating them, that don't necessarily want to coordinate their 
>>>> shared 
>>>> storage worklet scripts. 
>>>>
>>>> Best,
>>>>
>>>> Josh
>>>>
>>>>
>>>> On Wed, Apr 24, 2024 at 1:19 PM Josh Karlin <jka...@chromium.org> 
>>>> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Wed, Apr 24, 2024 at 11:52 AM Alex Russell <sligh...@chromium.org> 
>>>>> wrote:
>>>>>
>>>>>> Hey Josh, 
>>>>>>
>>>>>> I agree that it might not be helpful to ping Gecko and WebKit on 
>>>>>> this, but it would still be helpful to update the TAG on how this design 
>>>>>> is 
>>>>>> evolving.
>>>>>>
>>>>>
>>>>> Ack. I've updated the TAG thread 
>>>>> <https://github.com/w3ctag/design-reviews/issues/747#issuecomment-2075450880>
>>>>> .
>>>>>  
>>>>>
>>>>>>
>>>>>> From that perspective, I would expect the TAG to request that we 
>>>>>> improve consistency by making cross-origin workers (not just worklets) 
>>>>>> possible. Where are we at on that?
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Alex
>>>>>>
>>>>>> On Friday, April 19, 2024 at 12:58:17 PM UTC-7 Josh Karlin wrote:
>>>>>>
>>>>>>> On Fri, Apr 19, 2024 at 1:59 PM Vladimir Levin <vmp...@chromium.org> 
>>>>>>> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Apr 19, 2024 at 12:52 PM Yao Xiao <yao...@chromium.org> 
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> *Contact emails*
>>>>>>>>> cam...@chromium.org
>>>>>>>>> jka...@chromium.org
>>>>>>>>> yao...@chromium.org
>>>>>>>>> rohit...@google.com
>>>>>>>>> asha...@google.com
>>>>>>>>>
>>>>>>>>> *Explainer*
>>>>>>>>> https://github.com/WICG/shared-storage
>>>>>>>>>
>>>>>>>>> *Specification*
>>>>>>>>> https://wicg.github.io/shared-storage/
>>>>>>>>>
>>>>>>>>> *Additional anticipated specification changes*
>>>>>>>>> https://github.com/WICG/shared-storage/pull/152
>>>>>>>>>
>>>>>>>>> *Blink component*
>>>>>>>>> Blink>Storage>SharedStorage 
>>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component%3ABlink%3EStorage%3ESharedStorage&can=2>
>>>>>>>>>
>>>>>>>>> *Summary:*
>>>>>>>>> We plan to ship the following changes to the Shared Storage API:
>>>>>>>>>
>>>>>>>>>    - selectURL() and run() will be exposed on the 
>>>>>>>>>    SharedStorageWorklet interface. When calling on the default scoped 
>>>>>>>>> worklet 
>>>>>>>>>    (i.e. sharedStorage.worklet.selectURL()/run()), the behavior is 
>>>>>>>>> equivalent 
>>>>>>>>>    to calling sharedStorage.selectURL()/run(). 
>>>>>>>>>    - Users can create new worklets via const worklet = await 
>>>>>>>>>    sharedStorage.createWorklet(url, options). This API can be used to 
>>>>>>>>> start 
>>>>>>>>>    multiple and potentially cross-origin worklets from a single 
>>>>>>>>> document. 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> *Risks *
>>>>>>>>> *Interoperability and Compatibility*
>>>>>>>>> The changes are fully backward compatible.
>>>>>>>>>
>>>>>>>>> Gecko: No signal
>>>>>>>>> WebKit: No signal
>>>>>>>>> Web developers: No signals
>>>>>>>>> Other signals:
>>>>>>>>>
>>>>>>>>
>>>>>>>> Is it possible to file position requests? (
>>>>>>>> https://bit.ly/blink-signals)
>>>>>>>>
>>>>>>>
>>>>>>>> Was there a TAG review filed for this as well?
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Sorry, we should have specified that TAG, Gecko. and Webkit are 
>>>>>>> negative on shared storage as a whole. So we did not ask for their 
>>>>>>> opinion 
>>>>>>> on this particular change.
>>>>>>>  
>>>>>>>  
>>>>>>>
>>>>>>>>  
>>>>>>>>
>>>>>>>>>
>>>>>>>>> *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*
>>>>>>>>> Because the worklet's context origin will be that of the origin of 
>>>>>>>>> the script URL, both "Shared-Storage-Cross-Origin-Worklet-Allowed: 
>>>>>>>>> ?1" and 
>>>>>>>>> CORS are required when fetching a x-origin worklet script. Even so, 
>>>>>>>>> it is 
>>>>>>>>> important that worklet script creators understand the implications of 
>>>>>>>>> this. 
>>>>>>>>> Their worklet, which accesses their origin's Shared Storage data, can 
>>>>>>>>> be 
>>>>>>>>> loaded and executed by a different party.
>>>>>>>>>
>>>>>>>>> *Privacy*
>>>>>>>>> In the case of creating or using a cross-origin worklet, if the 
>>>>>>>>> worklet cannot be created because the user has denied storage for 
>>>>>>>>> that 
>>>>>>>>> site, then the promise will resolve (rather than reject) to prevent 
>>>>>>>>> leaking 
>>>>>>>>> cross-site data. A caller may still use timing attacks to know this 
>>>>>>>>> information, but this is a minor privacy issue, as in reality very 
>>>>>>>>> few 
>>>>>>>>> users would set such preferences, and doing a wide search would incur 
>>>>>>>>> a 
>>>>>>>>> significant performance cost spinning up the worklets.
>>>>>>>>>
>>>>>>>>> *Debuggability*
>>>>>>>>>
>>>>>>>>>    - Shared Storage database contents for an origin can be viewed 
>>>>>>>>>    and modified within DevTools. 
>>>>>>>>>    - Shared Storage worklet can be inspected within DevTools. 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> *Will this feature be supported on all six Blink platforms 
>>>>>>>>> (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?*
>>>>>>>>> All but WebView
>>>>>>>>>
>>>>>>>>
>>>>>>>> Out of curiosity, why is WebView not supported for this?
>>>>>>>>  
>>>>>>>>
>>>>>>>>>
>>>>>>>>> *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*
>>>>>>>>> SharedStorageAPIM125
>>>>>>>>>
>>>>>>>>> *Requires code in //chrome?*
>>>>>>>>> No
>>>>>>>>>
>>>>>>>>> *Estimated milestones*
>>>>>>>>> We intend to ship in M125.
>>>>>>>>>
>>>>>>>>> *Link to entry on the Chrome Platform Status*
>>>>>>>>> https://chromestatus.com/feature/5145686840705024
>>>>>>>>> -- 
>>>>>>>>> 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+...@chromium.org.
>>>>>>>>> To view this discussion on the web visit 
>>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/41ee180b-5822-40fe-ac15-1bb1c9715e05n%40chromium.org
>>>>>>>>>  
>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/41ee180b-5822-40fe-ac15-1bb1c9715e05n%40chromium.org?utm_medium=email&utm_source=footer>
>>>>>>>>> .
>>>>>>>>>
>>>>>>>> -- 
>>>>>>>> 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+...@chromium.org.
>>>>>>>>
>>>>>>> To view this discussion on the web visit 
>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2O7c2%2B%2B12PtuAS%2BSfHx0%2B8X6SuA7mr6saW%3DRVhewXkUHw%40mail.gmail.com
>>>>>>>>  
>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CADsXd2O7c2%2B%2B12PtuAS%2BSfHx0%2B8X6SuA7mr6saW%3DRVhewXkUHw%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>> .
>>>>>>>>
>>>>>>> -- 
>>>>>> 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+...@chromium.org.
>>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/af749e5f-d3fb-4901-9427-f49efe95410cn%40chromium.org
>>>>>>  
>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/af749e5f-d3fb-4901-9427-f49efe95410cn%40chromium.org?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>>
>>>>> -- 
>>>> 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+...@chromium.org.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAANMuaPuu4frRrmLq01eAsTAb2fMnQ_rZ3OJoz9dWd%3DVfQQBhA%40mail.gmail.com
>>>>  
>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAANMuaPuu4frRrmLq01eAsTAb2fMnQ_rZ3OJoz9dWd%3DVfQQBhA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> -- 
>> 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+...@chromium.org.
>> To view this discussion on the web visit 
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALYudgV0qYjc9goCzdeSBjQpy0rLTZ2rem_KCWGNBs7MzMH5pQ%40mail.gmail.com
>>  
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALYudgV0qYjc9goCzdeSBjQpy0rLTZ2rem_KCWGNBs7MzMH5pQ%40mail.gmail.com?utm_medium=email&utm_source=footer>
>> .
>>
>> -- 
>> 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+...@chromium.org.
>>
> To view this discussion on the web visit 
>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/fb5552ba-6381-40b0-ad43-76262ae199dd%40chromium.org
>>  
>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/fb5552ba-6381-40b0-ad43-76262ae199dd%40chromium.org?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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/867fe787-eb1e-4da0-b034-f3cfb9b3a19en%40chromium.org.

Reply via email to