LGTM3 On Wed, Apr 27, 2022 at 6:11 AM Mike Taylor <[email protected]> wrote:
> LGTM2 > > On 4/27/22 2:33 AM, Yoav Weiss wrote: > > LGTM1 > > I'm excited about this work as it unlocks many potential wins in terms of > loading performance. Interest from Mozilla as well as support from leading > CDNs is also promising in terms of activation and usage. Thanks for working > on this!! > > On Wed, Apr 27, 2022 at 7:49 AM Daisuke Enomoto <[email protected]> > wrote: > >> Hi >> >> Any other questions or concerns? >> >> Thanks! >> >> On Thu, Apr 21, 2022 at 5:23 PM Kenichi Ishibashi <[email protected]> >> wrote: >> >>> Hi Yoav, >>> >>> On Thu, Apr 21, 2022 at 3:26 PM Yoav Weiss <[email protected]> >>> wrote: >>> >>>> >>>> >>>> On Thu, Apr 21, 2022 at 4:13 AM Kenichi Ishibashi <[email protected]> >>>> wrote: >>>> >>>>> Contact emails >>>>> >>>>> [email protected], [email protected] >>>>> >>>>> Explainer >>>>> >>>>> https://github.com/bashi/early-hints-explainer/blob/main/explainer.md >>>>> >>>>> Specification >>>>> >>>>> https://tools.ietf.org/html/rfc8297 >>>>> >>>>> https://html.spec.whatwg.org/#early-hints >>>>> >>>>> Design docs >>>>> >>>>> >>>>> https://docs.google.com/document/d/1gCh_CnfrJq_VL7aGoq6skc7sn4yn5pKsM0gkHe5B9go/edit?usp=sharing >>>>> >>>>> Summary >>>>> >>>>> Support 103 Early Hints informational responses during top-level frame >>>>> navigation. When a 103 response includes link headers Chromium tries to >>>>> preload specified resources (including modulepreload) or preconnect to >>>>> specified origins before the final response is received. This gives Web >>>>> developers a way to optimize Core Web Vitals such as Largest Contentful >>>>> Paint (LCP). >>>>> >>>>> >>>>> Blink component >>>>> >>>>> Internals>Preload >>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Internals%3EPreload> >>>>> >>>>> TAG review >>>>> >>>>> https://github.com/w3ctag/design-reviews/issues/638 >>>>> >>>>> TAG review status >>>>> >>>>> Issues addressed >>>>> >>>>> Risks >>>>> Interoperability and Compatibility >>>>> >>>>> Browsers may not understand a 103 response but they are expected >>>>> <https://www.ietf.org/archive/id/draft-ietf-httpbis-semantics-19.html#name-informational-1xx> >>>>> to ignore 1xx responses if they don’t understand 1xx responses. Firefox is >>>>> implementing 103 support. >>>>> >>>>> Proxies may not understand a 103 response. They may treat the 103 >>>>> response as a part of the final response when the response is sent over >>>>> HTTP/1.1. The problem is less likely to happen over HTTP/2 and HTTP/3 >>>>> thanks to their frame format. Chromium only handles 103 responses over >>>>> HTTP/2 and HTTP/3. >>>>> >>>>> The HTML and Fetch standards have been updated to handle preload link >>>>> headers in 103 responses for navigations (whatwg/html#7675 >>>>> <https://github.com/whatwg/html/pull/7675>, whatwg/fetch#1404 >>>>> <https://github.com/whatwg/fetch/pull/1404>). For preconnect there >>>>> are ongoing efforts to specify the behavior. See “Anticipated spec >>>>> changes” >>>>> section below for more information. >>>>> >>>>> Gecko: In development >>>>> <https://bugzilla.mozilla.org/show_bug.cgi?id=1407355>. >>>>> >>>> >>>> Can you ask for an official position? https://bit.ly/blink-signals >>>> >>> I should have put the link to the official position. They said it's worth >>> prototyping <https://github.com/mozilla/standards-positions/issues/134> and >>> IIUC it's under development. >>> >>> >>>> >>>>> >>>>> WebKit: No signal >>>>> <https://lists.webkit.org/pipermail/webkit-dev/2021-May/031861.html>. >>>>> >>>>> Web developers: Positive. Positive interest and intent of support by >>>>> popular CDNs (Fastly >>>>> <https://www.fastly.com/blog/faster-websites-early-priority-hints>, >>>>> Cloudflare <https://blog.cloudflare.com/early-hints/>). We've been >>>>> collaborating with partners to evaluate the impact of Early Hints and we >>>>> observed significant improvements on page loading metrics such as FCP. >>>>> >>>>> >>>>> Ergonomics >>>>> >>>>> The primary usage of this feature is to send link headers to preload >>>>> resources or preconnect to servers to improve page load performance. Due >>>>> to >>>>> potential security concerns Chromium only handles the first 103 response >>>>> for the top-frame navigation. >>>>> >>>> >>>> That restriction is specified, right? AFAICT, "process early hints >>>> headers >>>> <https://html.spec.whatwg.org/multipage/semantics.html#process-early-hint-headers>" >>>> is only called from "process a navigate response >>>> <https://html.spec.whatwg.org/multipage/browsing-the-web.html#navigating-across-documents:process-early-hint-headers> >>>> ". >>>> >>> Yes, you're right. Sorry for the confusion. Chromium has these >>> restrictions to follow the specification. >>> >>> >>>> >>>> >>>>> See this document >>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/early-hints.md> >>>>> for details of restrictions. These restrictions may be relaxed in the >>>>> future. >>>>> >>>>> >>>>> Activation >>>>> >>>>> Popular HTTP servers and CDNs provide configurations or options to >>>>> send Early Hints responses. >>>>> >>>>> >>>>> Security >>>>> >>>>> Request mode <https://fetch.spec.whatwg.org/#concept-request-mode> >>>>> and credentials mode >>>>> <https://fetch.spec.whatwg.org/#concept-request-credentials-mode> are >>>>> calculated the same as normal preload and preconnect. Preloads triggered >>>>> by >>>>> a 103 response follow policies specified in the same 103 response. >>>>> Chromium >>>>> only handles the first 103 response and ignores following 103 responses to >>>>> avoid contradiction policies between these responses and the final >>>>> response. Chromium doesn’t use preloaded resources triggered by a 103 >>>>> response when there are conflicting policies between a 103 response and >>>>> the >>>>> final response. See the security considerations section >>>>> <https://docs.google.com/document/d/1gCh_CnfrJq_VL7aGoq6skc7sn4yn5pKsM0gkHe5B9go/edit#heading=h.fhq04xt0tah6> >>>>> of the design doc for more information. >>>>> >>>> >>>> Is that specified? >>>> >>> Yes. These behaviors are specified in "process a navigate fetch >>> <https://html.spec.whatwg.org/multipage/browsing-the-web.html#process-a-navigate-fetch>" >>> and "process early hint headers >>> <https://html.spec.whatwg.org/multipage/semantics.html#process-early-hint-headers> >>> ". >>> >>> >>>> >>>>> >>>>> >>>>> WebView application risks >>>>> >>>>> We don’t expect WebView specific problems with this feature. >>>>> >>>>> >>>>> Debuggability >>>>> >>>>> If a resource is preloaded by Early Hints, the corresponding >>>>> PerformanceResourceTiming object reports that its initiatorType is >>>>> "early-hints". >>>>> >>>>> When the document doesn’t use resources preloaded by Early Hints >>>>> within a few seconds from the window’s load event Chromium will show >>>>> warning messages (this is under review now). >>>>> >>>>> DevTools lack Early Hints support and we consider adding Early Hints >>>>> support in DevTools in the future. In the meanwhile developers can use >>>>> NetLog >>>>> <https://www.chromium.org/for-testers/providing-network-details/>, >>>>> WebPageTest, or network protocol analyzers such as Wireshark for >>>>> debugging. >>>>> >>>>> Is this feature fully tested by web-platform-tests >>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md> >>>>> ? >>>>> >>>>> Yes >>>>> <https://github.com/web-platform-tests/wpt/tree/master/loading/early-hints> >>>>> >>>>> Flag name >>>>> >>>>> EarlyHintsPreloadForNavigation >>>>> >>>>> Requires code in //chrome? >>>>> >>>>> False >>>>> >>>>> Tracking bug >>>>> >>>>> https://crbug.com/671310 >>>>> >>>>> Launch bug >>>>> >>>>> https://crbug.com/1197989 >>>>> >>>>> Sample links >>>>> >>>>> https://early-hints.fastlylabs.com/ >>>>> >>>>> Estimated milestones >>>>> >>>>> We would like to ship this feature in M103. >>>>> >>>>> Anticipated spec changes >>>>> >>>>> Historically preconnect hasn’t been specified well (whatwg/html#4224 >>>>> <https://github.com/whatwg/html/issues/4224>). There are ongoing >>>>> efforts to specify the behavior. For example whatwg/html#7814 >>>>> <https://github.com/whatwg/html/pull/7814> specified the behavior of >>>>> <link rel=preconnect>. whatwg/html#7835 >>>>> <https://github.com/whatwg/html/pull/7835> will specify preconnect in >>>>> link headers and it will cover 103 responses. >>>>> >>>> > Great to see those PRs have landed! > > >> >>>>> >>>>> Link to entry on the Chrome Platform Status >>>>> >>>>> https://chromestatus.com/feature/5207422375297024 >>>>> >>>>> Links to previous Intent discussions >>>>> >>>>> Intent to Experiment: >>>>> https://groups.google.com/u/1/a/chromium.org/g/blink-dev/c/xb_NHDS3twY >>>>> >>>>> >>>>> 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 [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPLXX-9MUr5cdGw_x7Gy6B3dxcmpVp9tnXL%2BY%3DDeEXoABNy3bA%40mail.gmail.com >>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPLXX-9MUr5cdGw_x7Gy6B3dxcmpVp9tnXL%2BY%3DDeEXoABNy3bA%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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfU3vO5hb3CXXt4mG6HCWPOF7tjCoqvrjOdbW2Q49uiSbw%40mail.gmail.com > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAL5BFfU3vO5hb3CXXt4mG6HCWPOF7tjCoqvrjOdbW2Q49uiSbw%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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8d74545b-dde0-49ce-197d-25ae8dfd4ec2%40chromium.org > <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/8d74545b-dde0-49ce-197d-25ae8dfd4ec2%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 [email protected]. To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw8Ur6VO3bOKmYf0Dp7VN2fFiLkyh1OZchsPA43ukq-NMQ%40mail.gmail.com.
