[dev-platform] Intent to Prototype and Ship: Happy Eyeballs v3

106 views
Skip to first unread message

Kershaw Jang

unread,
May 12, 2026, 6:14:02 AM (5 days ago) May 12
to dev-pl...@mozilla.org
Summary: We are introducing Happy Eyeballs v3, a new connection-establishment algorithm that replaces the previous DnsAndConnectSocket-based approach. The new implementation races IPv4 and IPv6 connection attempts in parallel using a Rust-based state machine, and can also race QUIC/HTTP/3 against TCP-based HTTP/1.1 or HTTP/2 when an HTTPS record or Alt-Svc response header indicates that HTTP/3 is available.

Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1953459 

Specification: The algorithm is specified in draft-ietf-happy-happyeyeballs-v3.

Standards Body: IETF.

Platform coverage: Available on desktop and Android. 

Preference: network.http.happy_eyeballs_enabled

DevTools bug: Not applicable.

Extensions Bug: Not applicable.

Use Counter: N/A

Standards-Positions Discussion: https://github.com/mozilla/standards-positions/issues/1192 

Other browsers:
- Chromium: According to https://chromeenterprise.google/policies/happy-eyeballs-v3-enabled/ , this has been supported since Chrome 136.
- WebKit: No signal yet

web-platform-tests: There is no WPT coverage for connection-establishment behavior. We have added xpcshell tests covering H1, H2, and H3 0-RTT accepted/rejected paths, dual-family race scenarios, fallback to IPv4, and LNA denial.

Performance: Connections to dual-stack hosts are faster because IPv6 and IPv4 are raced simultaneously rather than tried sequentially. We also expect to see increased HTTP/3 usage, because Happy Eyeballs v3 can race QUIC/HTTP/3 against TCP-based HTTP/1.1 or HTTP/2 and select the faster working path.

If you observe unexpectedly long connection times, page not loading, or any regression in connection behavior, please file a bug blocking Bug 1953459.

Thanks,
Kershaw
Reply all
Reply to author
Forward
0 new messages