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.

Reply via email to