/chromium

Chromium fork with initial (WIP) support for end-to-end iQUIC + HTTP/3

BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

QuiChrome

HTTP/3 implementation inside Chromium built on top of bnk.

Build Instructions

Windows has not been tested and there will likely be a few issues that have to be fixed to get this working on Windows.

  • Follow Chromium's instructions to get Chromium's code (https://www.chromium.org/developers/how-tos/get-the-code) until the 'Setting up the build' section.

  • Add this github fork as a second remote:

    git remote add fork https://github.com/DaanDeMeyer/chromium.git
  • Fetch and checkout the iquic branch:

    git fetch fork iquic
    git checkout iquic
  • Sync Chromium's third party dependencies:

    gclient sync
  • Generate ninja build files:

    gn gen out/default

    To get faster builds, run gn args out/default and write the following args:

    is_debug = false
    is_component_build = true
    enable_nacl = false
    blink_symbol_level = 0
    symbol_level = 1

    These flags are explained in the 'Faster Builds' section in Chromium's get-the-code documentation.

  • Build the chrome target:

    autoninja -C out/default chrome
  • Run the resulting chrome executable, specifying the iquic version and forcing quic to be used on every website:

    out/default/chrome --quic-version=IQUIC_DRAFT_22 --origin-to-force-quic-on='*' https://www.facebook.com --auto-open-devtools-for-tabs