LGTM to extend the deprecation trial M127-132, but it'd be good to have
meaningful progress by then to reduce the number of folks that use it..

On Fri, Jun 14, 2024 at 8:48 PM Emily Stark <est...@chromium.org> wrote:

>
>
> On Fri, Jun 14, 2024 at 10:36 AM Emily Stark <est...@chromium.org> wrote:
>
>> (Apologies for the slow response, we had some OOOs)
>>
>> On Mon, Jun 3, 2024 at 7:55 PM Mike Taylor <miketa...@chromium.org>
>> wrote:
>>
>>> Hi Emily,
>>>
>>> A few questions inline:
>>> On 6/1/24 5:05 AM, Emily Stark wrote:
>>>
>>> Contact emails est...@google.com, jdebla...@google.com,
>>> dadr...@google.com, l...@chromium.org, tito...@chromium.org,
>>> cl...@chromium.org, mk...@chromium.org, v...@chromium.org
>>>
>>> Explainer
>>> https://github.com/WICG/private-network-access/blob/master/explainer.md
>>>
>>> Specification https://wicg.github.io/private-network-access
>>>
>>> Design docs
>>>
>>> https://docs.google.com/document/d/1x1a1fQLOrcWogK3tpFBgQZQ5ZjcONTvD0IqqXkgrg5I/edit#heading=h.7nki9mck5t64
>>>
>>> Summary
>>>
>>> Requires that private network requests for subresources from public
>>> websites may only be initiated from a secure context. Examples include
>>> internet to intranet requests and internet to loopback requests. This is a
>>> first step towards fully implementing Private Network Access:
>>> https://wicg.github.io/private-network-access/
>>>
>>>
>>> Blink component Blink>SecurityFeature>CORS>PrivateNetworkAccess
>>> <https://bugs.chromium.org/p/chromium/issues/list?q=component:Blink%3ESecurityFeature%3ECORS%3EPrivateNetworkAccess>
>>>
>>> TAG review https://github.com/w3ctag/design-reviews/issues/572
>>>
>>> TAG review status Issues addressed
>>>
>>> Chromium Trial Name PrivateNetworkAccessNonSecureContextsAllowed
>>>
>>> Link to origin trial feedback summary
>>> https://docs.google.com/spreadsheets/d/1z5ZdCslNCnSVR7TNlUTHjSvunMFmT_9G9NOx8-O78-I/edit?usp=sharing&resourcekey=0-DITlG8tDuFDWHiBUHnlSoQ
>>>
>>> Origin Trial documentation link
>>> https://developer.chrome.com/blog/private-network-access-update/
>>>
>>> WebFeature UseCounter name
>>> kPrivateNetworkAccessNonSecureContextsAllowedDeprecationTrial
>>>
>>> Risks
>>>
>>>
>>> Interoperability and Compatibility
>>>
>>> No interoperability risks. Compatibility risk is small but
>>> non-negligible. UseCounters show ~0.1% of page visit making use of this
>>> feature. Direct outreach to the largest users per UKM data revealed no
>>> objections to this launch. Rolling this deprecation out to beta per the
>>> previous I2S resulted in more feedback about the compatibility risk and the
>>> need for a time extension. See the following doc for an extensive
>>> discussion:
>>> https://docs.google.com/document/d/1bpis0QwaA9ZrRFmpPW6LiaPmdwT0UhhUMNsEnU0zfLk/edit
>>>
>>> Can you speak to the number of sites in the largest users group? Is it
>>> dozens of sites? Hundreds? Presumably they're all enrolled in the DT?
>>>
>> I've requested access to the OT data so I can't say for sure yet, but in
>> the meantime, my impression is that we're roughly talking about hundreds of
>> sites. The breakage of ending the deprecation trial would be quite small in
>> terms of affected page loads, but there are legitimate use cases
>> <https://github.com/WICG/private-network-access/issues/23#:~:text=in%20order%20for%20a%20device%20to%20get%20a%20coveted%20MFi%20(%E2%80%9CWorks%20with%20HomeKit%E2%80%9D)%20certification%20from%20Apple%2C%20it%20must%20not%20require%20direct%20internet%20access%20for%20the%20initial%20setup>
>> for nonsecure subresource requests to the private network that we're trying
>> to accomodate because they don't have an alternative/workaround.
>>
>
> Update: it looks like there are ~1000 sites registered in the DT.
>
>
>> *Gecko*: Closed Without a Position (
>>> https://github.com/mozilla/standards-positions/issues/143) Tentatively
>>> positive, but no formal position yet.
>>>
>>> *WebKit*: Positive (
>>> https://lists.webkit.org/pipermail/webkit-dev/2021-May/031837.html)
>>>
>>> *Web developers*: Mixed signals (
>>> https://docs.google.com/document/d/1bpis0QwaA9ZrRFmpPW6LiaPmdwT0UhhUMNsEnU0zfLk/edit)
>>> In our recent survey, most of websites are able to migrate if our new
>>> permission prompt can be landed as a way for them to relax mixed content
>>> checks.
>>> https://docs.google.com/spreadsheets/d/1z5ZdCslNCnSVR7TNlUTHjSvunMFmT_9G9NOx8-O78-I/edit?resourcekey=0-DITlG8tDuFDWHiBUHnlSoQ#gid=309953809
>>>  ------------
>>> Some websites, broadly falling in the category of controller webapps for
>>> IoT devices, find this change incompatible with their use cases. While many
>>> use cases can be solved with specific workarounds, some still require
>>> further engagement.
>>>
>>> *Other signals*:
>>>
>>> Activation
>>>
>>> Developers of non-secure sites that rely upon local servers will need to
>>> upgrade to HTTPS. This might cause some complications, as mixed-content
>>> checks will begin to apply. Chrome carves out HTTP access to loopback (as
>>> perhttps://w3c.github.io/webappsec-secure-contexts/#localhost), which
>>> is a release valve for folks who don't want to go through the effort of
>>> securely-distributing certs for local servers. The initial launch in M92
>>> was delayed due to compatibility risks surfaced during the rollout to beta.
>>> See this doc for a lot more details:
>>> https://docs.google.com/document/d/1bpis0QwaA9ZrRFmpPW6LiaPmdwT0UhhUMNsEnU0zfLk/edit
>>>
>>>
>>> Security
>>>
>>> This change should be security-positive.
>>>
>>>
>>> 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?
>>>
>>>
>>> Goals for experimentation
>>>
>>> Reason this experiment is being extended
>>>
>>> The blocker to shipping this feature is that some websites can't create
>>> HTTPS connections to subresources on the private network due to various
>>> constraints (e.g., unable to obtain a publicly trusted HTTPS certificate).
>>> A permission prompt is in development (
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/sL15TKGmXqM/m/rD0SF8sQBwAJ)
>>> to allow such subresources to be loaded over HTTP (whereas they would
>>> usually be blocked by mixed content rules). However, the permission prompt
>>> currently only works for fetch() and does not work in iframes, thus we need
>>> to investigate whether we need to support use cases not supported by the
>>> current implementation. The overall Private Network Access project is also
>>> currently being transitioned between teams, so the extension request
>>> includes some time for handoff/rampup.
>>>
>>> I'm slightly confused on the timing -
>>> https://chromestatus.com/feature/5954091755241472 states that we
>>> shipped the permission prompt in 124 - is that not the case?
>>>
>>> What are the non-fetch cases that might need to be supported? XHR?
>>> Sub-resource loads? Both? Something else? Is it feasible to design a DT
>>> that addresses the non-fetch() use cases?
>>>
>> The permission prompt for fetch() requests did indeed ship in M124, but
>> there are feature requests to support subresouce loads from HTML tags
>> (<img>, <iframe>, etc.) as well as to support permission delegation to
>> iframes. These outstanding feature requests are described in this
>> (Google-internal) doc:
>> https://docs.google.com/document/d/1r4MnGtCmXvt-sDdp3RiaYLkdTcLKPjmmL4ky4TCOMS0/edit?tab=t.0#heading=h.1fxgtnya8b50
>>
>> So we're requesting an extension to this DT (which allows enrolled
>> nonsecure origins to make private network requests) to give us time to
>> implement those feature requests. That will allow the origins enrolled in
>> this DT to migrate to secure origins and use the permission prompt (and
>> related feature requests) to make private network requests to nonsecure
>> origins.
>>
>> I don't think I understand your last question ("Is it feasible to design
>> a DT...?"), could you clarify?
>>
>>> Also, could you clarify what milestones you're requesting a renewal for?
>>> The table below is hard for me to parse (e.g., extension 5 ending in 132;
>>> extension 6 ending in 126).
>>>
>> I've been staring at Chrome Status for a while and am honestly pretty
>> confused as to how that table came to be. We're requesting a renewal in
>> M127, to last until M132.
>>
>>>
>>> Ongoing technical constraints
>>>
>>> None.
>>>
>>>
>>> Debuggability
>>>
>>> When a request is made that violates this restriction and the feature is
>>> not enabled, three things happen: 1. A warning message is logged to the
>>> DevTools console. 2. A deprecation report is filed against the initiator
>>> website's Reporting API, if so configured. 3. An issue is surfaced in the
>>> DevTools Issues panel. Likewise, when the feature is enabled and a request
>>> is blocked, the same happens except that the message logged to the DevTools
>>> console is an error and its text is slightly different. The devtools
>>> network panel shows information about the source and remote address spaces
>>> at play.
>>>
>>>
>>> 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://wpt.fyi/results/fetch/private-network-access?label=master&label=experimental&aligned
>>>
>>>
>>> Flag name on chrome://flags BlockInsecurePrivateNetworkRequests
>>>
>>> Finch feature name None
>>>
>>> Non-finch justification None
>>>
>>> Requires code in //chrome? False
>>>
>>> Tracking bug https://crbug.com/986744
>>>
>>> Launch bug https://crbug.com/1129801
>>>
>>> Estimated milestones
>>> Shipping on desktop 127
>>> Origin trial desktop first 94
>>> Origin trial desktop last 126
>>> Origin trial extension 1 end milestone 126
>>> Origin trial extension 5 end milestone 132
>>> Origin trial extension 6 end milestone 126
>>> DevTrial on desktop 86
>>> OriginTrial Android last 126
>>> OriginTrial Android first 94
>>> DevTrial on Android 86
>>>
>>> Link to entry on the Chrome Platform Status
>>> https://chromestatus.com/feature/5436853517811712?gate=5187028487766016
>>>
>>> Links to previous Intent discussions Ready for Trial:
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/EeGg7TxW6U4/m/7ZvqAqHLAwAJ
>>> Intent to Experiment:
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/vlDZXlPb00k/m/1421ACiuAAAJ
>>> Intent to Extend Experiment 1:
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/JPD001kqeck
>>> Intent to Extend Experiment 6:
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/JPD001kqeck
>>> Intent to Ship:
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/JPD001kqeck
>>> Intent to Ship:
>>> https://groups.google.com/a/chromium.org/g/blink-dev/c/JPD001kqeck
>>>
>>>
>>> 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/CAPP_2Sbhrsrmmk5ZTwkxkuwT6_iEs4QPNGNYTL9u_7ODmEb3Vw%40mail.gmail.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPP_2Sbhrsrmmk5ZTwkxkuwT6_iEs4QPNGNYTL9u_7ODmEb3Vw%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/CAPP_2SaQKCfQCsMpcJUHDYU%3Dx%3Dc5uuwBVyesqeBheMrAma%2B7Zg%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPP_2SaQKCfQCsMpcJUHDYU%3Dx%3Dc5uuwBVyesqeBheMrAma%2B7Zg%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/CAOmohSLHdO_ZTKr6XoYK1pyTpoo6j9x_YQUY6hqWW_ee5xWU4A%40mail.gmail.com.

Reply via email to