Thanks everyone! This feature will roll out in M137

-Andrew

On Wed, Apr 23, 2025 at 7:46 AM Yoav Weiss (@Shopify) <
yoavwe...@chromium.org> wrote:

> LGTM3
>
> Thanks for doing the necessary work to gauge the compat risk here! :)
>
> On Monday, April 21, 2025 at 4:56:27 PM UTC+2 Chris Harrelson wrote:
>
>> LGTM2
>>
>> On Sat, Apr 19, 2025 at 9:43 AM Mike Taylor <miketa...@chromium.org>
>> wrote:
>>
>>> I am recused from giving LGTMs on this one, but the new use counters and
>>> other mitigations (enterprise policy, finch killswitch, chrome://flags
>>> entry) suggest to me that the risk is low, and if we get it wrong, we can
>>> undo the change.
>>> On 4/18/25 4:39 PM, Andrew Williams wrote:
>>>
>>> Hi blink-dev,
>>>
>>> > Hmm, that extra complexity seems a bit unfortunate, but oh well; I'm
>>> happy to trust your judgement that it's the best path. Please keep us
>>> updated on the spec and test work for that extra integration!
>>>
>>> The Storage Access API non-cookie storage spec [1] and corresponding
>>> Chromium implementation had already planned to allow access to first-party
>>> Blob URLs from third-party contexts after a storage handle had been
>>> granted, and I think it makes sense w.r.t. consistency (effectively
>>> providing workarounds for all of the APIs changed as part of the Storage
>>> Partitioning effort). Regarding spec work for this, I opened a spec bug [2]
>>> to discuss this further and it seems that what's needed is the core work
>>> still required to make the Storage Access API for non-cookie storage spec
>>> actually bypass storage partitioning for the other storage APIs as well
>>> (which is still blocked on the Storage Key having more than just an origin
>>> [3]). I plan to follow-up on that spec work, but propose we don't block
>>> shipping this Blob URL partitioning effort on this broader work. Regarding
>>> testing, we've added WPTs for the integration, including for cases such as
>>> when a Blob URL fetch occurs from a dedicated worker created after storage
>>> access has been granted to the document context that created it.
>>>
>>> Regarding potential for breakage, the new use counter we added that
>>> better reflects the potential for breakage is in Chrome Beta, Dev, and
>>> Canary and the % of page loads affected is very low (currently 0.000001%)
>>> [4]. For Chrome we have an enterprise policy that can be used if there is
>>> breakage, we have a killswitch we can use to disable the feature broadly if
>>> major breakage is encountered, and we've also added a chrome://flags
>>> entry that can be used to disable the feature by users directly. I think
>>> it's safe to conclude that this change is safe but in the worst case we can
>>> mitigate breakage effectively if we need to.
>>>
>>> Assuming Domenic's LGTM still stands, it looks like we still need two
>>> more. Would any other Blink API owners support moving forward with this?
>>>
>>> Thank you!
>>>
>>> -Andrew
>>>
>>> [1] https://privacycg.github.io/saa-non-cookie-storage/#document-changes
>>> [2] https://github.com/privacycg/saa-non-cookie-storage/issues/34
>>> [3] https://github.com/whatwg/storage/pull/144
>>> [4] https://chromestatus.com/metrics/feature/timeline/popularity/5330
>>>
>>> On Tue, Mar 4, 2025 at 8:46 PM Domenic Denicola <dome...@chromium.org>
>>> wrote:
>>>
>>>>
>>>>
>>>> On Wed, Mar 5, 2025 at 2:35 AM Andrew Williams <awil...@chromium.org>
>>>> wrote:
>>>>
>>>>> Hi everyone,
>>>>>
>>>>> Quick update on this. We landed a new use counter implementation last
>>>>> week that better gauges actual breakage, and preliminary data from Chrome
>>>>> Canary shows that no instances of breakage were detected except for a few
>>>>> from yesterday, and those likely correspond to me running the partitioning
>>>>> tests on wpt.fyi locally to confirm that the use counter actually works as
>>>>> intended. :) For reference, there are orders of magnitude more instances 
>>>>> of
>>>>> the BlobStoreAccessAcrossTopLevelSite use counter (which we used for the
>>>>> previous breakage analysis) being reported for the same Chrome Canary
>>>>> clients and during the same time period. I'll check the "real" use counter
>>>>> data once it's available in Chrome Status, but I suspect the percentage of
>>>>> page loads that would break will be significantly lower than we calculated
>>>>> earlier.
>>>>>
>>>>> Also, before launching we plan to integrate with the Storage Access
>>>>> API so that contexts that have been granted a StorageAccessHandle will
>>>>> still be able to fetch Blob URLs in the same way they could before this
>>>>> change (so, without regard to top-level site or the
>>>>> "has-cross-site-ancestor" boolean)
>>>>>
>>>>
>>>> Hmm, that extra complexity seems a bit unfortunate, but oh well; I'm
>>>> happy to trust your judgement that it's the best path. Please keep us
>>>> updated on the spec and test work for that extra integration!
>>>>
>>>>
>>>>>
>>>>> -Andrew
>>>>>
>>>>> On Mon, Feb 10, 2025 at 2:34 PM Andrew Williams <awil...@chromium.org>
>>>>> wrote:
>>>>>
>>>>>> Thanks Yoav, responses inline!
>>>>>>
>>>>>> > So the upper bound for potential breakage is 0.04%?
>>>>>>
>>>>>> I believe this is a reasonable estimate, although I think it assumes
>>>>>> that page loads are evenly distributed across UMA-enabled clients and I'm
>>>>>> not sure whether that's the case
>>>>>>
>>>>>> > Are there ways to tighten it? (e.g. through manual sampling or
>>>>>> use-counter changes)
>>>>>>
>>>>>> Regarding manual sampling, we could investigate by looking at the
>>>>>> domains associated with an existing use counter for this:
>>>>>> https://chromestatus.com/metrics/feature/timeline/popularity/4169. I
>>>>>> suspect that the majority of cases we would encounter would be the
>>>>>> cross-origin fetches that are already blocked, though, matching the high
>>>>>> percentage of these in our metrics.
>>>>>>
>>>>>> Making use-counter changes is certainly an option if the consensus is
>>>>>> that the upper bound still seems too risky (even given that Firefox and
>>>>>> Safari currently ship this behavior and given the proposed mitigations).
>>>>>>
>>>>>> Alternatively, we could enable this functionality in Chrome Canary,
>>>>>> Dev, and Beta for a few weeks and see if we get any bug reports. WDYT?
>>>>>>
>>>>>> > What does breakage look like? What do these sites see in Safari
>>>>>> today?
>>>>>>
>>>>>> Blocking cross-partition fetches / subframe navigations is
>>>>>> implemented in both Firefox and Safari today, so for both of those 
>>>>>> browsers
>>>>>> the fetch / navigation fails and DevTools shows a warning message. The
>>>>>> partitioning scheme is slightly different across browsers - Safari
>>>>>> partitions by top-level origin and Firefox partitions by top-level site +
>>>>>> whether there was a cross-site frame in the frame tree, and the Chrome
>>>>>> behavior will match the Firefox behavior for this.
>>>>>>
>>>>>> -Andrew
>>>>>>
>>>>>> On Sun, Feb 9, 2025 at 11:21 PM Yoav Weiss (@Shopify) <
>>>>>> yoavwe...@chromium.org> wrote:
>>>>>>
>>>>>>> Thanks for the compat analysis!
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Feb 7, 2025 at 6:48 PM Andrew Williams <awil...@chromium.org>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hey everyone,
>>>>>>>>
>>>>>>>> From looking at use counters for these cases, cross-top-level-site
>>>>>>>> Blob URL navigations that would have noopener set as part of this 
>>>>>>>> change
>>>>>>>> are seen on 0.0004% of page loads. Note that this is calculated from 
>>>>>>>> data
>>>>>>>> from pre-stable channels and could change when looking at Stable data, 
>>>>>>>> but
>>>>>>>> it seems unlikely to change by orders of magnitude.
>>>>>>>>
>>>>>>>> For cross-partition Blob URL fetches, these occur on 0.21% of page
>>>>>>>> loads, but from digging into this more and from looking at UMA data, at
>>>>>>>> least 83% of those cross-partition Blob URL fetches are guaranteed
>>>>>>>> to be blocked today because they are also cross-origin, and only  ~21% 
>>>>>>>> of
>>>>>>>> UMA-enabled clients reported at least one cross-partition fetch that 
>>>>>>>> wasn't
>>>>>>>> guaranteed to be blocked. It's likely that the remaining 17% of
>>>>>>>> cross-partition Blob URL fetches are cross-origin as well and would 
>>>>>>>> already
>>>>>>>> be blocked, but our current use counter / metrics implementations don't
>>>>>>>> provide a way to gauge this. More details on this analysis can be 
>>>>>>>> found at:
>>>>>>>> https://crbug.com/387655548#comment2
>>>>>>>>
>>>>>>>
>>>>>>> So the upper bound for potential breakage is 0.04%?
>>>>>>> If so, that's too high for comfort from my perspective.
>>>>>>> Are there ways to tighten it? (e.g. through manual sampling or
>>>>>>> use-counter changes)
>>>>>>> What does breakage look like? What do these sites see in Safari
>>>>>>> today?
>>>>>>>
>>>>>>>
>>>>>>>> Overall I think the use counter metrics + supporting UMA data
>>>>>>>> support moving forward with this change, as does the fact that Firefox 
>>>>>>>> and
>>>>>>>> Safari have already implemented similar functionality. If there is 
>>>>>>>> breakage
>>>>>>>> as a result of this, we do have an enterprise policy to disable it, 
>>>>>>>> we'll
>>>>>>>> have a chrome://flags entry so that users can disable it, and
>>>>>>>> we'll have a Finch feature flag as a killswitch for any cases of
>>>>>>>> widespread, significant breakage.
>>>>>>>>
>>>>>>>> Regarding formal signals from Gecko and Webkit, we opened one from
>>>>>>>> Gecko but haven't heard anything:
>>>>>>>> https://github.com/mozilla/standards-positions/issues/1151. For
>>>>>>>> WebKit, we reached out regarding whether we should open one and they
>>>>>>>> mentioned they didn't think we needed to, given that we plan to 
>>>>>>>> implement
>>>>>>>> what the functionality they have already, just using sites instead of
>>>>>>>> origins.
>>>>>>>>
>>>>>>>> -Andrew
>>>>>>>>
>>>>>>>> On Thu, Dec 12, 2024 at 12:35 PM Andrew Williams <
>>>>>>>> awil...@chromium.org> wrote:
>>>>>>>>
>>>>>>>>> Thanks Domenic, we've landed a change to remove .tentative from
>>>>>>>>> the test file names:
>>>>>>>>> https://chromium-review.googlesource.com/c/chromium/src/+/5967596
>>>>>>>>>
>>>>>>>>> Gregg, IIUC "top-level->iframe(blob-from-top-level)" means the
>>>>>>>>> top-level creates a blob URL and then creates an iframe where the src 
>>>>>>>>> is
>>>>>>>>> that blob URL. Similarly,
>>>>>>>>> "top-level->iframe(3rd-party)->iframe(blob-from-3rd-party)" means 
>>>>>>>>> that the
>>>>>>>>> 3rd-party iframe creates a blob URL and then creates an iframe where 
>>>>>>>>> the
>>>>>>>>> src is that blob URL. Neither of those cases will be affected by this
>>>>>>>>> change.
>>>>>>>>>
>>>>>>>>> Daniel, thanks for the feedback. We will collect use counts on
>>>>>>>>> this and report back once the data is available (should be around
>>>>>>>>> mid-February). In the meantime, we will request formal signals from 
>>>>>>>>> Gecko
>>>>>>>>> and WebKit as you recommended.
>>>>>>>>>
>>>>>>>>> On the topic of alignment across browsers, the I2S mentions that
>>>>>>>>> all navigations will remain partitioned only by frame origin, but I 
>>>>>>>>> learned
>>>>>>>>> recently that Safari and Firefox partition subframe navigations (like 
>>>>>>>>> using
>>>>>>>>> a blob URL as the src of an iframe) by storage key / the top-level as 
>>>>>>>>> well
>>>>>>>>> (and this is what was originally proposed in
>>>>>>>>> https://github.com/w3c/FileAPI/issues/153). It's only top-level
>>>>>>>>> navigations that remain partitioned only by frame origin. Our
>>>>>>>>> implementation will follow suit. I'll update the Chrome Status 
>>>>>>>>> description
>>>>>>>>> accordingly.
>>>>>>>>>
>>>>>>>>> -Andrew
>>>>>>>>>
>>>>>>>>> On Wed, Dec 11, 2024 at 11:38 AM Daniel Bratell <
>>>>>>>>> bratel...@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> After discussing this on the API OWNER meeting I have a few
>>>>>>>>>> questions and suggestions.
>>>>>>>>>>
>>>>>>>>>> My main concern is that we don't have full understanding of the
>>>>>>>>>> compatibility risk. We believe this is rare, but do we have any hard 
>>>>>>>>>> data
>>>>>>>>>> to confirm that? If not, would it be possible to add a targetted use
>>>>>>>>>> counter that counts the cases where a page tries to use a broken 
>>>>>>>>>> blob?
>>>>>>>>>>
>>>>>>>>>> I think you should also request formal signals from Gecko and
>>>>>>>>>> WebKit since this is not exactly what they have done. It seems from 
>>>>>>>>>> what
>>>>>>>>>> you write that we're getting something very slightly different 
>>>>>>>>>> (which also
>>>>>>>>>> means that what seems to work for them might still break in 
>>>>>>>>>> Chromium).
>>>>>>>>>>
>>>>>>>>>> /Daniel
>>>>>>>>>> On 2024-12-10 03:29, Domenic Denicola wrote:
>>>>>>>>>>
>>>>>>>>>> LGTM1, nice work on all the spec changes here!
>>>>>>>>>>
>>>>>>>>>> Please send a web platform tests PR to remove the .tentative.html
>>>>>>>>>> from the test filenames.
>>>>>>>>>>
>>>>>>>>>> On Tue, Dec 10, 2024 at 10:49 AM Gregg Tavares <g...@chromium.org>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Sorry if I'm not up on all of the latest. I have several sites
>>>>>>>>>>> that use blobs in iframes to implement user code execution (think
>>>>>>>>>>> JSFiddle/Codepen). Do I need to be worried?
>>>>>>>>>>>
>>>>>>>>>>> Some use top-level->iframe(blob-from-top-level). Others use
>>>>>>>>>>> top-level->iframe(3rd-party)->iframe(blob-from-3rd-party)
>>>>>>>>>>>
>>>>>>>>>>> They all currently work across browsers so I'm guessing I don't
>>>>>>>>>>> need to worry if Firefox and Safari already implement this.
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>> 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/CAM0wra8377qyjY1fv99%2BnDhJZjWN8j9CdGFLsuwrZVyHJYwUMg%40mail.gmail.com
>>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAM0wra8377qyjY1fv99%2BnDhJZjWN8j9CdGFLsuwrZVyHJYwUMg%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+unsubscr...@chromium.org.
>>>>>>>> To view this discussion visit
>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEa0%2BkVgqdOa3MKSoUqvfdH3thYyqm3pM9Paib2frzALG3BhrQ%40mail.gmail.com
>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEa0%2BkVgqdOa3MKSoUqvfdH3thYyqm3pM9Paib2frzALG3BhrQ%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+unsubscr...@chromium.org.
>>>
>> To view this discussion visit
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/a69a3de1-ebc7-4119-976b-cbe65468cb3e%40chromium.org
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/a69a3de1-ebc7-4119-976b-cbe65468cb3e%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 visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAEa0%2BkXUCvFKqONMWWSR5%2BjTc%3D8iJ1GxAK_MpMA60FMXdFyx5Q%40mail.gmail.com.

Reply via email to