Fix QUIC insecure randomness on Windows 7

These tests were disabled recently due to a rare crash on Windows 7. We tracked the crash down to the fact that taking the address of a static thread_local uint64_t[4] is apparently buggy on Windows 7. This change instead initializes that variable by assignment to sidestep the issue.

We've confirmed that this change fixes the Windows 7 Chrome crasher:
https://chromium-swarm.appspot.com/task?id=54e82650dc386a10

Note that this CL is not flag-protected because that would require two separate implementations of Xoshiro which would double the amount of thread_local storage required. That could cause issues on some platforms.

PiperOrigin-RevId: 386354470
5 files changed
tree: 349211ccb1e5d255dcc3121513aea611547ae0cc
  1. common/
  2. epoll_server/
  3. http2/
  4. quic/
  5. spdy/
  6. CONTRIBUTING.md
  7. LICENSE
  8. README.md
README.md

QUICHE

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.

The canonical open-source QUICHE repository is at https://quiche.googlesource.com/quiche.

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:

QUICHE is only supported on little-endian platforms.