Thanks Mike and Yoav. Acknowledging the non-blocking follow up work.
On Fri, Dec 20, 2024 at 3:14 PM Yoav Weiss (@Shopify) < yoavwe...@chromium.org> wrote: > LGTM2 > > +1 for a continuous holdback study that can help us detect abuse resulting > in real-life regressions. > > On Wednesday, December 18, 2024 at 5:54:54 PM UTC+1 Mike Taylor wrote: > >> LGTM1 to ship, with some non-blocking homework. >> >> Could you please do the work to add a DevTools Issue so developers are >> aware when this hint is harming performance rather than helping? >> >> It would also be good to try to do some HTTP Archive queries (or have a >> use counter, if that's feasible) to help us better understand how many >> sites would benefit from the feature. >> >> And finally, please consider a holdback study so we can be sure there's >> not a net-negative effect to shipping. >> >> thanks, >> Mike >> On 12/13/24 12:01 PM, Alex Russell wrote: >> >> Sorry, yes, we ran as a separate thread until a few years ago. I'd >> forgotten that things got moved back. >> >> A worklet for handling these fetch types wouldn't be bound to any >> specific execution location (it's environment would be pretty austere; not >> the whole regular JS heap) and would likely only be able to rewrite fetches >> or cancel them, rather than pause parsing. That won't solve anything for >> the Search use-cases, but might be more durable for the consent managers. >> >> On Friday, December 13, 2024 at 5:12:23 AM UTC-8 ale...@google.com wrote: >> >>> Re: the consent management use case — that's right; a directive that >>> disables speculative scan explicitly would help the consent use case more. >>> However, future optimizations would find it difficult to wiggle out of such >>> a contract. Hence a hint was chosen. From what Transcend described on >>> the issue <https://g-issues.chromium.org/issues/330802493#comment8>, >>> they use a CSP meta tag, which would stop the scanner in some versions of >>> Chromium (perhaps until this >>> <https://chromium-review.googlesource.com/c/chromium/src/+/5832754> >>> landed). >>> >>> Re: background thread, IIUC, speculative parsing runs on the main thread >>> at the moment. There might have been experiments in the past that tried to >>> make it run in a background thread, but those did not have the same results >>> as the current implementation, as far as I gathered. >>> >>> For the cases that this feature is trying to help, i.e., large html >>> payloads that consume significant time on main thread while speculative >>> parsing, as well as pages that are better off with explicit header-preload >>> directives or inlining resources and avoid the delay altogether, a hint is >>> the only viable method. The browser cannot pre-determine that piece of >>> information (whether there's a resource coming), on its own — thus a hint >>> works best here. >>> >>> >>> >>> On Fri, Dec 13, 2024 at 12:21 AM Alex Russell <slightly...@chromium.org> >>> wrote: >>> >>>> The consent manager case seems particularly brittle, as any future >>>> improvements to reduce parser blockage by <script> elements will allow the >>>> regular document parser to process the elements in question. Presumably the >>>> transcend system works using document.write()? >>>> >>>> We've talked in the past about providing something like an inline >>>> worklet for pre-processing resource fetches (that would, conceptually, run >>>> on the preload scanner thread). Until we have something like that in the >>>> platform, I worry that hint-based workarounds are always going to fail. >>>> >>>> Best, >>>> >>>> Alex >>>> >>>> On Thursday, December 12, 2024 at 5:36:08 AM UTC-8 ale...@google.com >>>> wrote: >>>> >>>>> Re: additional interest, Transcend.io had expressed >>>>> <https://g-issues.chromium.org/issues/330802493#comment8> interest in >>>>> using the feature for preventing the preload scanner from loading URLs in >>>>> sensitive contexts, prior to consent (non-performance improvement use >>>>> case). Search is currently the only report available from the feature's >>>>> Origin Trial period. >>>>> >>>>> Additionally, I have collected benchmarks of pages where the feature >>>>> would add significant performance to page loading, as shared on HTML spec >>>>> discussion. One could do the same against a page of interest that matches >>>>> the target of this feature with the experimental flag it’s currently >>>>> under. >>>>> >>>>> Regarding rearchitecting the scanner itself — my analysis of Gecko’s >>>>> speculative scanner >>>>> <https://developer.mozilla.org/en-US/docs/Glossary/Speculative_parsing> >>>>> implementation against Chromium’s separate but lightweight scanner reached >>>>> the conclusion that merging them will very likely regress Chromium’s >>>>> speculative fetch performance. Thus there are currently no planned >>>>> projects >>>>> in that direction. >>>>> >>>>> There is an advantage to having a lighter scan as it’s done today >>>>> which can discover fetches earlier than in lockstep with actual tree >>>>> construction, and I think it’s still the right tradeoff aligned with the >>>>> majority of the web who benefit from speculative scanning. A hint from >>>>> pages that don’t benefit from the speculative scanner, which is a very >>>>> specific use case indeed, is a better tradeoff and incremental >>>>> improvement, >>>>> thus this feature. >>>>> >>>>> On Wed, Dec 11, 2024 at 11:34 PM Vladimir Levin <vmp...@chromium.org> >>>>> wrote: >>>>> >>>>>> Hey, >>>>>> >>>>>> We discussed this at API Owners today: >>>>>> 1. As Stephen mentioned, it would be nice if there was more support >>>>>> for this feature. Do you have partners or developers that are aware of >>>>>> this >>>>>> and are looking forward to using the feature? >>>>>> 2. In terms of approving this feature, we typically want the spec >>>>>> changes to exist in a stable forum (HTML, WICG, CSS, etc). Currently this >>>>>> is a spec PR that has concerns from other implementors, which isn't >>>>>> sufficient. Please let us know when the spec changes land in one of the >>>>>> accepted forums. >>>>>> >>>>>> Thank you and let me know if you have questions! >>>>>> >>>>>> Vlad >>>>>> >>>>>> On Wednesday, December 11, 2024 at 9:31:21 AM UTC-5 Stephen Chenney >>>>>> wrote: >>>>>> >>>>>> On Tue, Dec 10, 2024 at 11:08 PM Chromestatus < >>>>>> ad...@cr-status.appspotmail.com> wrote: >>>>>> >>>>>> Contact emails ale...@google.com >>>>>> >>>>>> Explainer https://github.com/explainers-by-googlers/expect-no-linked- >>>>>> resources >>>>>> https://explainers-by-googlers.github.io/expect-no-linked-resources >>>>>> >>>>>> Specification https://github.com/whatwg/html/pull/10718 >>>>>> >>>>>> Summary >>>>>> >>>>>> The expect-no-linked-resources configuration point in Document Policy >>>>>> allows a document to hint to the user agent to better optimize its >>>>>> loading >>>>>> sequence, such as not using the default speculative parsing behavior. >>>>>> User >>>>>> Agents have implemented speculative parsing of HTML to speculatively >>>>>> fetch >>>>>> resources that are present in the HTML markup, to speed up page loading. >>>>>> For the vast majority of pages on the Web that have resources declared in >>>>>> the HTML markup, the optimization is beneficial and the cost paid in >>>>>> determining such resources is a sound tradeoff. However, the following >>>>>> scenarios might result in a sub-optimal performance tradeoff vs. the >>>>>> explicit time spent parsing HTML for determining sub resources to fetch: >>>>>> * >>>>>> Pages that do not have any resources declared in the HTML. * Large HTML >>>>>> pages with minimal or no resource loads that could explicitly control >>>>>> preloading resources via other preload mechanisms available. >>>>>> `expect-no-linked-resources` Document-Policy hints the User Agent that it >>>>>> may choose to optimize out the time spent in such sub resource >>>>>> determination. >>>>>> >>>>>> >>>>>> Blink component Blink >>>>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%22> >>>>>> >>>>>> TAG review https://github.com/w3ctag/design-reviews/issues/1014 >>>>>> >>>>>> TAG review status Pending >>>>>> >>>>>> Risks >>>>>> >>>>>> >>>>>> Interoperability and Compatibility >>>>>> >>>>>> Gecko has its speculative parsing pass integrated into document >>>>>> parser and hypothesizes that it might not have any benefit by adopting >>>>>> this >>>>>> standard. WebKit's stance is that it might want to invest in Gecko's >>>>>> architecture wrt. speculative parsing vs. receiving a hint from the web >>>>>> developer to optimize the hint. Thus this feature might not become >>>>>> interoperable. We believe that it is worth proceeding anyways, as our >>>>>> experimentation with parsing architectures suggests that there is a real >>>>>> tradeoff here that cannot be solved without a web developer hint. As a >>>>>> document-policy hint, the interoperability cost of this not being >>>>>> implemented everywhere is low: its presence will only cause small >>>>>> differences in speculative parsing timing, which are already permitted by >>>>>> the HTML Standard. Similarly, the compatibility risk of this feature is >>>>>> low. If we were to eventually remove it, it would be very hard for web >>>>>> developers to notice. More of the discussions at the HTML standard pull >>>>>> request and the subsequent WHATNOT meeting notes below: >>>>>> https://github.com/whatwg/html/pull/10718 WHATNOT discussion >>>>>> minutes: https://github.com/whatwg/html/issues/10709 >>>>>> https://github.com/whatwg/html/issues/10720 >>>>>> https://github.com/whatwg/html/issues/10734 >>>>>> https://github.com/whatwg/html/issues/10750 >>>>>> >>>>>> >>>>>> Did you consider investing in Gecko's architecture? In other words, >>>>>> is this introducing a non-compatible web feature to address a >>>>>> chromium-specific software design choice? >>>>>> >>>>>> >>>>>> >>>>>> *Gecko*: Negative (https://github.com/whatwg/html/pull/10718) Gecko >>>>>> has its speculative parsing pass integrated into document parser and >>>>>> hypothesizes that it might not have any benefit by adopting this >>>>>> standard. >>>>>> Given their comments on the pull requests and at WHATNOT meetings, we >>>>>> believe it's not necessary to file for a formal standards position. >>>>>> >>>>>> *WebKit*: Negative (https://github.com/whatwg/html/pull/10718) Given >>>>>> their comments on the pull requests and at WHATNOT meetings, we believe >>>>>> it's not necessary to file for a formal standards position. >>>>>> >>>>>> *Web developers*: Positive (https://docs.google.com/document/d/ >>>>>> 1VhztmwDUz40sb2HEBfNJjplva8hXgAP3C6qlyTFbfr0/edit?tab=t.0# >>>>>> heading=h.9mt7t18673oo) >>>>>> >>>>>> >>>>>> Do you have more than 1 piece of public web developer feedback, >>>>>> ideally from a non-Google product? >>>>>> >>>>>> >>>>>> >>>>>> *Other signals*: >>>>>> >>>>>> Ergonomics >>>>>> >>>>>> None. The feature is opted-in on a per-response basis by a page that >>>>>> does not benefit from speculative parsing, and is off by default. >>>>>> >>>>>> >>>>>> Activation >>>>>> >>>>>> None. >>>>>> >>>>>> >>>>>> Security >>>>>> >>>>>> This feature does not change security risks. >>>>>> >>>>>> >>>>>> 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 >>>>>> >>>>>> The feature usage, i.e., opt-in by the page, will be visible under >>>>>> page Headers in network panel of the DevTools interface. >>>>>> >>>>>> >>>>>> Will this feature be supported on all six Blink platforms (Windows, >>>>>> Mac, Linux, ChromeOS, 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://github.com/web-platform-tests/wpt/pull/49617 >>>>>> >>>>>> >>>>>> Flag name on about://flags >>>>>> >>>>>> Finch feature name DocumentPolicyExpectNoEmbeddedResources >>>>>> >>>>>> Requires code in //chrome? False >>>>>> >>>>>> Tracking bug https://issues.chromium.org/issues/365632977 >>>>>> >>>>>> Estimated milestones Shipping on desktop 133 Shipping on Android 133 >>>>>> Shipping >>>>>> on WebView 133 >>>>>> >>>>>> Anticipated spec changes >>>>>> >>>>>> Open questions about a feature may be a source of future web compat >>>>>> or interop issues. Please list open issues (e.g. links to known github >>>>>> issues in the project for the feature specification) whose resolution may >>>>>> introduce web compat/interop risk (e.g., changing to naming or structure >>>>>> of >>>>>> the API in a non-backward-compatible way). >>>>>> None >>>>>> >>>>>> Link to entry on the Chrome Platform Status https://chromestatus.com/ >>>>>> feature/5202800863346688?gate=5195231151259648 >>>>>> >>>>>> Links to previous Intent discussions Intent to Prototype: >>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/ >>>>>> 00000000000050b3190621c328c4%40google.com >>>>>> >>>>>> >>>>>> 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 visit https://groups.google.com/a/ >>>>>> chromium.org/d/msgid/blink-dev/6759101e.2b0a0220.23f11c. >>>>>> 0000.GAE%40google.com >>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6759101e.2b0a0220.23f11c.0000.GAE%40google.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/ac7397ee-386c-47b4-a170-1e0034a58966n%40chromium.org >>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/ac7397ee-386c-47b4-a170-1e0034a58966n%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/bd56d28f-870d-4143-a4a3-2047fdc5946cn%40chromium.org >> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/bd56d28f-870d-4143-a4a3-2047fdc5946cn%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/CA%2BN7OXdEMU%3DMhpnv_YwjzeTnQnfjN7SvkveG9JfM0CjrAq21pg%40mail.gmail.com.