Hello all, it's been a while. On Wed, Aug 16, 2023 at 7:23 PM Chris Harrelson <chris...@chromium.org> wrote:
> LGTM1 to turn it on in M118 beta and report back to this group about use > counter results/bugs reported on beta before it reaches stable. > As requested, I have added use counters to measure ORB-blocked resources on elements (script and img/video/media) with event handlers. On current stable, I get this: (source <https://uma.googleplex.com/p/chrome/timeline_v2?sid=064bd3472f5dfd2a92f8d34049e5848e> ) - 0.006% of page loads have a script or media element with an event handler (and thus potential compatibility impact from this change; although we don't know what the impact would be) - 0.0075 % of page loads have a script or media element without any event handlers (and thus guaranteed without compatibility impact from this change) - The majority of pages with any event handler seem to have both handlers - onload and onerror - set. I'll note that the sum of those (with any + without any) are much lower than the numbers I previously reported in this thread. I believe that's because of 1, here we only count specific HTML elements (but not e.g. the ping attribute on links), and 2, the carveout for fetch()-initiated requests. The previously reported metric counted ORB-related blocks across all page-initiated responses, regardless of whether it might be script-visible or not. Daniel On Fri, Aug 11, 2023 at 2:50 AM 'Daniel Vogelheim' via blink-dev < > blink-dev@chromium.org> wrote: > >> On Wed, Jul 26, 2023 at 11:29 AM Yoav Weiss <yoavwe...@chromium.org> >> wrote: >> >>> On Tue, Jul 25, 2023 at 6:48 PM Daniel Vogelheim <vogelh...@google.com> >>> wrote: >>> >>>> On Tue, Jul 25, 2023 at 9:10 AM Yoav Weiss <yoavwe...@chromium.org> >>>> wrote: >>>> >>>>> On Mon, Jul 24, 2023 at 7:27 PM Daniel Vogelheim <vogelh...@google.com> >>>>> wrote: >>>>> >>>>>> On Mon, Jul 24, 2023 at 5:55 PM Yoav Weiss <yoavwe...@chromium.org> >>>>>> wrote: >>>>>> >>>>>>> On Mon, Jul 24, 2023 at 5:44 PM Daniel Vogelheim < >>>>>>> vogelh...@google.com> wrote: >>>>>>> >>>>>>>> On Mon, Jul 24, 2023 at 5:24 PM Yoav Weiss <yoavwe...@chromium.org> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> On Fri, Jul 21, 2023 at 5:53 PM 'Daniel Vogelheim' via blink-dev < >>>>>>>>> blink-dev@chromium.org> wrote: >>>>>>>>> >>>>>>>>>> Contact emailsvogelh...@chromium.org >>>>>>>>>> >>>>>>>>>> Specificationhttps://github.com/whatwg/fetch/pull/1442 >>>>>>>>>> >>>>>>>>>> Summary >>>>>>>>>> >>>>>>>>>> Opaque Response Blocking (ORB) is a replacement for Cross-Origin >>>>>>>>>> Read Blocking (CORB - >>>>>>>>>> https://chromestatus.com/feature/5629709824032768). CORB and ORB >>>>>>>>>> are both heuristics that attempt to prevent cross-origin disclosure >>>>>>>>>> of >>>>>>>>>> “no-cors” subresources. This entry tracks "v0.2" of ORB - Chrome's >>>>>>>>>> second >>>>>>>>>> step towards a full ORB implementation. ORB specifies error handling >>>>>>>>>> for >>>>>>>>>> blocked resources differently from CORB: ORB raises network errors, >>>>>>>>>> while >>>>>>>>>> CORB injects an empty response. ORB "v0.1" still used CORB-style >>>>>>>>>> response >>>>>>>>>> injection. This change brings our implementation more in line with >>>>>>>>>> the ORB >>>>>>>>>> proposal, by changing the error handling of all fetches (except when >>>>>>>>>> initiated by a script) to be compliant with ORB. We've made a >>>>>>>>>> carve-out for >>>>>>>>>> script-initiated fetches (where we retain CORB behaviour for now) to >>>>>>>>>> limit >>>>>>>>>> compatibility risk. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Blink componentInternals>Sandbox>SiteIsolation >>>>>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Internals%3ESandbox%3ESiteIsolation> >>>>>>>>>> >>>>>>>>>> TAG reviewNone >>>>>>>>>> (A TAG review of a particular aspect happened in: >>>>>>>>>> https://github.com/w3ctag/design-reviews/issues/618) >>>>>>>>>> >>>>>>>>>> TAG review statusNot applicable >>>>>>>>>> >>>>>>>>>> Risks >>>>>>>>>> >>>>>>>>>> Interoperability and Compatibility >>>>>>>>>> >>>>>>>>>> This release does not modify blocking behaviour, but only how a >>>>>>>>>> blocked resource is represented. Ideally, this change shouldn't >>>>>>>>>> break any >>>>>>>>>> existing code since any resource that loads (or gets blocked) before >>>>>>>>>> will >>>>>>>>>> continue to do so after. However, it is possible to distinguish >>>>>>>>>> between the >>>>>>>>>> different types of error handling, and it may well happen that an >>>>>>>>>> application inadvertently relies on blocked resources "succeeding". >>>>>>>>>> In our >>>>>>>>>> examinations so far, this chiefly concerns fetches using the >>>>>>>>>> `fetch()` API, >>>>>>>>>> where blocking with a network error results in a failed promise >>>>>>>>>> (instead of >>>>>>>>>> a success with an empty response). For this reason, we have carved >>>>>>>>>> out >>>>>>>>>> script-initiated fetches from "v0.2" and intend to handle them at a >>>>>>>>>> later >>>>>>>>>> date. >>>>>>>>>> >>>>>>>>> >>>>>>>>> OK, so how would this change be web exposed? Are there scenarios >>>>>>>>> where an "error" event would now fire instead of a "load" event? >>>>>>>>> >>>>>>>> >>>>>>>> Yes, exactly. If a site is waiting for an onload event - despite >>>>>>>> not really caring about whether the load is actually meaningful, since >>>>>>>> it >>>>>>>> currently already loads empty - then it would see a behavioural change. >>>>>>>> >>>>>>>> >>>>>>> Do we have stats on how often that would happen? (e.g. how often an >>>>>>> onload event fires on an ORB empty resource?) >>>>>>> >>>>>> >>>>>> No. I didn't realize I could measure onload events firing >>>>>> specifically for ORB-blocked resources. So I unfortunately don't have >>>>>> that >>>>>> data. >>>>>> >>>>>> The number of page views with any CORB/ORB-blocked resource in it >>>>>> hovers around 0.35% of page loads. That should provide an upper bound, >>>>>> but >>>>>> doesn't tell us how many of them care about the onload/onerror events. >>>>>> >>>>> >>>>> One way to avoid a 2 months delay while we're waiting on data could be >>>>> to add the use counters + a base feature and go ahead with a removal, but >>>>> turning it off if we see that the actual breakage exceeds some threshold. >>>>> Thoughts? >>>>> >>>> >>>> Turning this on via server-side experiments (and thus being able to >>>> turn it off quickly on problem reports) is easy to do. It might make sense >>>> to have it enabled on beta 50/50 for a while, to see whether anyone >>>> notices. >>>> >>>> I find it surprisingly hard to implement the use counters: The code >>>> that knows the network status (and thus _why_ a response might be empty) is >>>> separated by several layers from the code that knows the element and >>>> whether it has any event handlers. :-/ >>>> >>> >>> I agree that piping that information over from the browser to the >>> renderer would be an overkill (and may have security implications on >>> its own). In that case, a careful Finch may be sufficient. >>> One last thought - maybe it's possible to report the information to UKM >>> from both sides of the code, and join it at analysis time? (if that's not >>> too complex) >>> >> >> I've now landed the usecounter CL. What I'd like to do is: Enable the >> feature on beta now and wait for numbers to arrive from the usecounters. >> This would give us two signals on compatibility. >> >> According to the current schedule, the counters will make it into 118. >> >> >> >> >>> >>> >>>> >>>> >>>>> >>>>>>>>>> >>>>>>>>>> *Gecko*: No signal ( >>>>>>>>>> https://bugzilla.mozilla.org/show_bug.cgi?id=1532642) In >>>>>>>>>> implementation. >>>>>>>>>> >>>>>>>>>> *WebKit*: No signal ( >>>>>>>>>> https://github.com/WebKit/standards-positions/issues/64) >>>>>>>>>> >>>>>>>>>> *Web developers*: No signals >>>>>>>>>> >>>>>>>>>> *Other signals*: >>>>>>>>>> https://github.com/w3ctag/design-reviews/issues/618 >>>>>>>>>> >>>>>>>>>> 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 >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Debuggability >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Will this feature be supported on all six Blink platforms >>>>>>>>>> (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)? >>>>>>>>>> Yes >>>>>>>>>> >>>>>>>>>> Is this feature fully tested by web-platform-tests >>>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md> >>>>>>>>>> ?Yes (https://wpt.fyi/results/fetch/orb) >>>>>>>>>> >>>>>>>>>> Flag name on chrome://flags >>>>>>>>>> >>>>>>>>>> Finch feature nameOpaqueResponseBlockingV02 >>>>>>>>>> >>>>>>>>>> Requires code in //chrome?False >>>>>>>>>> >>>>>>>>>> Tracking bug >>>>>>>>>> https://bugs.chromium.org/p/chromium/issues/detail?id=1463725 >>>>>>>>>> >>>>>>>>>> Estimated milestones >>>>>>>>>> Shipping on desktop 117 >>>>>>>>>> DevTrial on desktop 115 >>>>>>>>>> Shipping on Android 117 >>>>>>>>>> DevTrial on Android 115 >>>>>>>>>> Shipping on WebView 117 >>>>>>>>>> >>>>>>>>>> Anticipated spec changesNone >>>>>>>>>> >>>>>>>>>> Link to entry on the Chrome Platform Status >>>>>>>>>> https://chromestatus.com/feature/5166834424217600 >>>>>>>>>> >>>>>>>>>> Links to previous Intent discussions >>>>>>>>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/ScjhKz3Z6U4 >>>>>>>>>> >>>>>>>>>> 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/CALG6KPPNdN%3DO0j0MhcfudkBtMoYnELhVRJ5nLftB8c1T1UdwbQ%40mail.gmail.com >>>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALG6KPPNdN%3DO0j0MhcfudkBtMoYnELhVRJ5nLftB8c1T1UdwbQ%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 on the web visit >> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALG6KPMpGi0K71%3DF8i4SjKt_1RuVnpAiavv1mArDO--rzLSSwA%40mail.gmail.com >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALG6KPMpGi0K71%3DF8i4SjKt_1RuVnpAiavv1mArDO--rzLSSwA%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 on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CALG6KPOi_sOLKazGH-2fno%3DQXegL7oO6RyDe4c5zudWro3DGdA%40mail.gmail.com.