I'm also not sure it needs API Owner approval, but I'll second Domenic:
LGTM2
(It does get some extra visibility this way which might be helpful,
especially if it triggers some unexpected problems)
/Daniel
On 2025-06-19 06:10, Domenic Denicola wrote:
I believe this should be completely unobservable to web authors,
right? (Apart from maybe fewer or more network errors.)
If so, I don't think this needs any LGTMs, as it fits well under the
Web-developer-facing change to existing behavior
<https://www.chromium.org/blink/launching-features/#behavior-changes> category.
(Which is... confusingly named
<https://github.com/GoogleChrome/chromium-dashboard/issues/5145>.)
But, in case it helps, LGTM1.
On Thursday, June 19, 2025 at 12:12:34 AM UTC+9 Ari Chivukula wrote:
Contact emails
aric...@chromium.org <mailto:aric...@chromium.org>,
awil...@chromium.org <mailto:awil...@chromium.org>,
miketa...@chromium.org <mailto:miketa...@chromium.org>
Explainer
None
Specification
None
Summary
This launch enables TCP port randomization on versions of Windows
(2020 H1 or later) where we do not expect to see issues with
re-use of prior ports occurring too fast (causing rejection due to
timeouts on port re-use). The rapid port re-use issue arises from
the Birthday problem
<https://en.wikipedia.org/wiki/Birthday_problem>, where the
probability of randomly re-picking a port already seen rapidly
converges with 100% for each new port chosen when compared to port
re-use in a sequential model.
Blink component
Blink>Network
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ENetwork%22>
TAG review
None
TAG review status
Not applicable
Motivation
When port randomization is disabled (the default), sites are able
to count the amount of connections opened by other tabs if they
check the TCP port used for new connections before and after
opening another window. This knowledge can be used to glean
information about other sites like whether they are logged in or not.
Risks
Interoperability and Compatibility
This launch only impacts Windows, and should not cause
compatibility issues as Microsoft backported their port
randomization fix
<https://chromium-review.googlesource.com/c/chromium/src/+/5464674>to
Windows 10, 2020 H1 and tested it in Edge.
Chrome previously attempted to roll this out in 2021 but ran into
(since resolved) issues where rapid port re-use caused network errors.
Rollout on linux isn’t needed as port randomization is enabled by
default while on macOS an issue similar to the one on Windows with
rapid port re-use causing issues is still around.
Gecko:Appears to inherit OS defaults
<https://github.com/search?q=repo%3Amozilla-firefox%2Ffirefox+setsockopt&type=code&p=1>
WebKit:Appears to inherit OS defaults
<https://github.com/search?q=repo%3AWebKit%2FWebKit+setsockopt&type=code>
Web developers:N/A
Debuggability
This will be gated behind the base::feature
kTcpPortRandomizationWin, so if breakage is suspected that flag
could be turned off to detect impact. For how to control feature
flags, see this
<https://source.chromium.org/chromium/chromium/src/+/main:base/feature_list.h;drc=159a65729cf8fca4d9f453d12d97ab6515360491;l=259>.
Measurement
The histogram
Net.TCPSocket.PortReuseTimeWindows2.{IPType}.{Result} will be used
to gauge whether port re-use timings fall too low, while
Net.TcpConnectAttempt.Latency.{Result} will be used to detect
increases in overall connection failure rates.
Will this feature be supported on all six Blink platforms
(Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
No, just Windows
Is this feature fully tested by web-platform-tests?
No, as this is a blink networking focused change browser tests or
unit tests are more likely.
Flag name on about://flags
None
Finch feature name
kTcpPortRandomizationWin
Rollout plan
This will be rolled out slowly to detect issues early and either
change the version target or roll back. We don’t believe an
experiment is needed or desired as the issues we saw before were
not very prevalent, we likely need to go beyond 1% to get enough
data on Windows to know if there’s still a problem.
Requires code in //chrome?
No
Tracking bug
https://crbug.com/40744069 <https://crbug.com/40744069>
Estimated milestones
139
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5106900286570496
<https://chromestatus.com/feature/5106900286570496>
--
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 visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/5ac125fa-3adf-4193-a1ff-1bf28f2f6020n%40chromium.org
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/5ac125fa-3adf-4193-a1ff-1bf28f2f6020n%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 blink-dev+unsubscr...@chromium.org.
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/f5641c39-ceb6-4d6a-afdb-4cacf0c06288%40gmail.com.