+1 to Mike's request. I think a Fetch PR for this seems both useful and not-extremely-onerous to pull together.
On Thursday, September 30, 2021 at 9:20:23 PM UTC+2 Mike West wrote: > This all looks good, thanks. > > I'd like to see the Fetch PR up before we ship this. It's a little > surprising that neither WebKit nor Gecko wired that up, but if we have > three interoperable implementations, it should be quite straightforward to > specify. > > I also wonder a little about WPT; we should probably at least file a ` > type:untestable > <https://github.com/web-platform-tests/wpt/issues?q=is%3Aissue+is%3Aopen+label%3Atype%3Auntestable>` > > issue to point to this as something that's not feasible to validate without > additional WebDriver support. > > -mike > > > On Thu, Sep 30, 2021 at 4:42 PM Eric Orth <erico...@chromium.org> wrote: > >> >> >> On Thu, Sep 30, 2021 at 6:53 AM Kaustubha Govind <kaustub...@chromium.org> >> wrote: >> >>> >>> >>> On Tue, Sep 28, 2021, 2:08 PM Eric Orth <erico...@chromium.org> wrote: >>> >>>> >>>> >>>> On Tue, Sep 28, 2021 at 1:13 PM Eric Orth <erico...@chromium.org> >>>> wrote: >>>> >>>>> >>>>> >>>>> On Tue, Sep 28, 2021 at 6:09 AM Mike West <mk...@chromium.org> wrote: >>>>> >>>>>> Hey Eric! >>>>>> >>>>>> On Thu, Sep 23, 2021 at 10:36 PM Eric Orth <erico...@chromium.org> >>>>>> wrote: >>>>>> >>>>>>> Contact emails >>>>>>> >>>>>>> erico...@chromium.org >>>>>>> >>>>>>> Explainer >>>>>>> >>>>>>> None >>>>>>> >>>>>>> Specification >>>>>>> >>>>>>> https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-svcb-https-07 >>>>>>> >>>>>>> Summary >>>>>>> >>>>>>> Query DNS for HTTPS records (alongside traditional A and AAAA >>>>>>> queries). When a website has deployed an HTTPS DNS record and Chrome >>>>>>> receives it, Chrome will always connect to the website via HTTPS. >>>>>>> >>>>>>> Design doc for all Chrome DNS HTTPS plans: >>>>>>> https://docs.google.com/document/d/1k461sRbddjDGj7Q8f-ZKHZvmB-ENUWSdX_3Fpp2dmXQ >>>>>>> >>>>>>> This feature covers just the basic query and HTTP->HTTPS upgrade >>>>>>> part of those plans, and only for simpler cases that do not require >>>>>>> followup DNS queries by the Chrome DNS stack. >>>>>>> >>>>>>> >>>>>>> Blink component >>>>>>> >>>>>>> Internals>Network>DNS >>>>>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Internals%3ENetwork%3EDNS> >>>>>>> >>>>>>> TAG review >>>>>>> >>>>>>> Not applicable. No direct changes to web platform APIs. Change is to >>>>>>> underlying DNS infrastructure, following an IETF spec, with only >>>>>>> indirect >>>>>>> web-facing side effects. >>>>>>> >>>>>> >>>>>> This seems like an overly narrow take on the feature: it seems like >>>>>> this needs to be wired up to Fetch in order to explain how the DNS >>>>>> assertion turns into a decision about how to connect to sites (similar >>>>>> to HSTS's >>>>>> integration >>>>>> <https://fetch.spec.whatwg.org/#:~:text=Set%20request%E2%80%99s%20current%20URL%E2%80%99s%20scheme%20to%20%22https%22>), >>>>>> >>>>>> and that upgrade will have web-visible impacts. >>>>>> >>>>> >>>>> Seems accurate to me. All the signals and triggering happen in DNS, >>>>> outside web platform APIs, with no direct web-platform-API interaction, >>>>> e.g. a header like was done for HSTS. Then the result is a redirect, >>>>> which >>>>> yes, is web-visible, hence the "indirect web-facing side effects". >>>>> >>>>> But I think you are right that this should get at least a mention in >>>>> the Fetch spec, and I think the ideal situation would be a single >>>>> additional sentence in that point about HSTS upgrade ("[...] or a DNS >>>>> lookup for the request's current URL per [link to section 8.5 of SVCB >>>>> RFC] >>>>> returns an HTTPS DNS record." or something like that). Does that sound >>>>> reasonable to you, or do you think this will take more comprehensive >>>>> updates to Fetch? >>>>> >>>>> >>>>>> Can I assume that you'll be following the same algorithm (e.g. >>>>>> shifting from 80 to 443 by switching the protocol, but not altering >>>>>> non-standard ports)? >>>>>> >>>>> >>>>> Correct. Non-standard ports result in a redirect to https with the >>>>> same non-standard port. Also noteworthy that non-standard ports would >>>>> require the HTTPS DNS record to be specific to that non-standard port, >>>>> e.g. >>>>> if the request URL were "http://example.com:1234", the redirect will >>>>> only happen if there is an HTTPS record for DNS queries for "_1234._ >>>>> https.example.com", not merely at "example.com" as would be >>>>> sufficient if the request URL were "http://example.com[:80]". >>>>> >>>>> >>>>>> >>>>>> TAG review status >>>>>>> >>>>>>> Not applicable >>>>>>> >>>>>>> Risks >>>>>>> >>>>>>> Interoperability and Compatibility >>>>>>> >>>>>>> Not directly part of the web API surface; only has indirect behavior >>>>>>> implications on the web platform in the form of the HTTP->HTTPS >>>>>>> redirect >>>>>>> triggered by DNS signals. >>>>>>> >>>>>>> HTTPS DNS records are a feature of DNS. The spec is a draft of the >>>>>>> IETF DNSOP working group, and while not yet a published RFC, it is >>>>>>> widely >>>>>>> considered stable and ready for implementation. IANA has designated >>>>>>> HTTPS >>>>>>> as DNS resource record type 65. >>>>>>> >>>>>>> >>>>>>> Gecko: No signal >>>>>>> >>>>>>> WebKit: Safari has been querying HTTPS DNS records since late 2020. >>>>>>> Unclear if Safari has yet implemented HTTP->HTTPS redirect behavior of >>>>>>> such >>>>>>> records. >>>>>>> >>>>>> >>>>>> It would be helpful to ask both Gecko and WebKit developers for more >>>>>> clear signals as described in https://bit.ly/blink-signals. >>>>>> >>>>> >>>>> Okay. I'll send off those requests. >>>>> >>>> >>>> Update: >>>> Request for position sent for WebKit: >>>> https://lists.webkit.org/pipermail/webkit-dev/2021-September/031991.html >>>> >>>> For Gecko, I discovered an older but very relevant "worth prototyping" >>>> position ( >>>> https://mozilla.github.io/standards-positions/#dnsop-svcb-httpssvc) >>>> for the overall HTTPS record draft. I've updated the chromestatus entry >>>> with this position and added a note that Firefox engineers have since >>>> stayed involved in the IETF discussions. >>>> >>> >>> FYI, it appears that Firefox 92 performs the http->https upgrade with >>> HTTPS DNS records (i.e. the exact feature that this thread is discussing): >>> >>> https://www.mozilla.org/en-US/firefox/92.0/releasenotes/ >>> >> >> Updated the chromestatus entry. Thanks. >> >> >>> >>> >>>> >>>>> >>>>> >>>>>> >>>>>>> Web developers: No signals >>>>>>> >>>>>> >>>>>> Are there any folks lined up to use this? Presumably there are if >>>>>> Safari is already making these queries? >>>>>> >>>>> >>>>> Most of the general interest I have heard for HTTPS records is for the >>>>> ECH and upgrade-to-QUIC functionalities that are not part of this >>>>> specific >>>>> planned launch. So it would be fair to say there is a lot of interest >>>>> from >>>>> various parties for HTTPS record support in general, and this HTTP->HTTPS >>>>> redirect functionality is a part of that standard, and it is by design >>>>> that >>>>> you cannot get those other functionalities without also getting the >>>>> HTTP->HTTPS functionality. >>>>> >>>>> >>>>>> >>>>>> >>>>>>> Debuggability >>>>>>> >>>>>>> No specific DevTools support. Changes not directly part of the web >>>>>>> API surface. Chrome is not generally used as a development tool for >>>>>>> changing DNS records besides testing/developing the indirect behavior >>>>>>> effects on visiting websites. >>>>>>> >>>>>> >>>>>> We represent HSTS to developers in devtools. Presumably we'd want to >>>>>> do the same for this mechanism, and signal in some way to developers >>>>>> _why_ >>>>>> a particular request was upgraded? >>>>>> >>>>> >>>>> I wouldn't describe it as rising to the level of "support", but >>>>> DNS-triggered redirect will display similarly to other artificial >>>>> redirect >>>>> responses, e.g. HSTS or extension delegates. That is that DevTools will >>>>> show a 307 redirect response with a "Non-Authoritative-Reason" field with >>>>> a >>>>> short string to describe the reason, e.g. "HSTS", "delegate", or for >>>>> DNS-triggered redirects, "DNS". I've added a note on this into the the >>>>> chromestatus entry. >>>>> >>>>> >>>>>> >>>>>> >>>>>>> >>>>>>> >>>>>>> Is this feature fully tested by web-platform-tests >>>>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md> >>>>>>> ? >>>>>>> >>>>>>> No >>>>>>> >>>>>>> Flag name >>>>>>> >>>>>>> None >>>>>>> >>>>>>> Requires code in //chrome? >>>>>>> >>>>>>> False >>>>>>> >>>>>>> Tracking bug >>>>>>> >>>>>>> https://crbug.com/1206455 >>>>>>> >>>>>>> Launch bug >>>>>>> >>>>>>> https://crbug.com/1206460 >>>>>>> >>>>>>> Estimated milestones >>>>>>> >>>>>>> Desktop 96 >>>>>>> >>>>>>> Android 96 >>>>>>> >>>>>>> Link to entry on the Chrome Platform Status >>>>>>> >>>>>>> https://www.chromestatus.com/feature/5485544526053376 >>>>>>> >>>>>>> This intent message was generated by Chrome Platform Status >>>>>>> <https://www.chromestatus.com/>. >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "net-dev" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to net-dev+unsubscr...@chromium.org. >>>>>>> To view this discussion on the web visit >>>>>>> https://groups.google.com/a/chromium.org/d/msgid/net-dev/CAMOjQcEJF4%3D7zU16oki_m0vYqfX2_%2BXgH2Fxf51RnMv9ipx63w%40mail.gmail.com >>>>>>> >>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/net-dev/CAMOjQcEJF4%3D7zU16oki_m0vYqfX2_%2BXgH2Fxf51RnMv9ipx63w%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>>>>> . >>>>>>> >>>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "net-dev" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to net-dev+unsubscr...@chromium.org. >>>> To view this discussion on the web visit >>>> https://groups.google.com/a/chromium.org/d/msgid/net-dev/CAMOjQcH4nkQuyH4TxsMoHOXRqLSOLrxNkQv0WYTt2d7LC98VgA%40mail.gmail.com >>>> >>>> <https://groups.google.com/a/chromium.org/d/msgid/net-dev/CAMOjQcH4nkQuyH4TxsMoHOXRqLSOLrxNkQv0WYTt2d7LC98VgA%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "net-dev" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to net-dev+unsubscr...@chromium.org. >> > To view this discussion on the web visit >> https://groups.google.com/a/chromium.org/d/msgid/net-dev/CAMOjQcFFMkuhWjP-cMg%2BAH_Sr_DdHESEowQgDkh_tnF7Fy1t8A%40mail.gmail.com >> >> <https://groups.google.com/a/chromium.org/d/msgid/net-dev/CAMOjQcFFMkuhWjP-cMg%2BAH_Sr_DdHESEowQgDkh_tnF7Fy1t8A%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/fb81b56b-e5f6-4f36-aac5-25bdb1ce0c45n%40chromium.org.