Update quic::IsAppleMobile to quic::IsAppleClient for better coverage of Apple related QUIC reverse path validation crash:
1) Added coverage for iOS Youtube (from cr/406134264) & iMM (from Sherlog) user agents.
2) Added coverage for Mac traffic.

The reasoning of this change being:
1) We are not sure if Apple networking stack on Mac has the same bug. But it is safer to cover this portion of traffic as well.
2) Given occasional client crashes are less urgent than server crashes, the current change is not exhaustive but aimed to cover most of the traffic.
3) This change will make IETF port migration fail at Chrome on MAC due to server reverse path validation failure. This is likely to be fine given the port migration feature needs its own binary fix rolled out and this is a small amount of Chrome traffic compared to Windows.

Protected by FLAGS_quic_reloadable_flag_quic_disable_reverse_path_validation_for_apple.

PiperOrigin-RevId: 407085983
1 file changed
tree: f9e20e5f2a4717fcb99ca47accae61c475204b47
  1. common/
  2. epoll_server/
  3. http2/
  4. quic/
  5. spdy/
  8. README.md


QUICHE stands for QUIC, Http/2, Etc. It is Google‘s production-ready implementation of QUIC, HTTP/2, HTTP/3, and related protocols and tools. It powers Google’s servers, Chromium, Envoy, and other projects. It is actively developed and maintained.

There are two public QUICHE repositories. Either one may be used by embedders, as they are automatically kept in sync:

To embed QUICHE in your project, platform APIs need to be implemented and build files need to be created. Note that it is on the QUICHE team's roadmap to include default implementation for all platform APIs and to open-source build files. In the meanwhile, take a look at open source embedders like Chromium and Envoy to get started:

To contribute to QUICHE, follow instructions at CONTRIBUTING.md.

QUICHE is only supported on little-endian platforms.