Update: Started a Fetch PR: https://github.com/whatwg/fetch/pull/1325

On Thu, Oct 7, 2021 at 3:34 AM Yoav Weiss <yoavwe...@chromium.org> wrote:

> +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/CAMOjQcHTz_PWTUQG_7LyQORzB9s4x5AVMp9QGRTLSQADe%2B1kqA%40mail.gmail.com.

Reply via email to