kelmenhorst / quic-censorship

Documentation of observed QUIC censorship methods and circumvention approaches.
47 stars 3 forks source link

Clarifying "How to test HTTP/3 in browsers" #6

Open hwsamuel opened 1 year ago

hwsamuel commented 1 year ago

As of the time of writing this, Firefox also has a Boolean config alt-svc-mapping-for-testing in addition to the network.http.http3.alt-svc-mapping-for-testing setting. It is unclear if the Boolean setting needs to be enabled to true for the http3 setting to work.

kelmenhorst commented 1 year ago

Thanks for bringing this up, I wasn't aware. What Firefox version are you using?

hwsamuel commented 1 year ago

I'm using 119.0 (64-bit Flatpak version) on Ubuntu 22.04

unitythemaker commented 1 month ago

Hi there. This doesn't work for me at all in Firefox. It works with Chromium though. I am on NixOS and have Firefox 131.0 installed. I tried the same with a Windows VM, Chrome worked but Firefox didn't work. I am trying it with Discord as it recently been banned in Turkey. I tried to set alt-svc-mapping-for-testing to both false and true. Any ideas? I analyzed network with Wireshark, for Chrome/Chromium I can see QUIC protocol being used. For Firefox, it tries TCP instead and I can clearly see the plain-text Client Hello packet.

Working Chrome/Chromium flag:

--enable-quic --origin-to-force-quic-on=discord.com:443,gateway.discord.gg:443,cdn.discordapp.com:443,discordapp.net:443,googleapis.com:443,discord-attachments-uploads-prd.storage.googleapis.com:443,dis.gd:443,discord.co:443,discord.design:443,discord.dev:443,discord.gg:443,discord.gift:443,discord.gifts:443,discord.media:443,discord.new:443,discord.store:443,discord.tools:443,discordapp.com:443,discordmerch.com:443,discordpartygames.com:443,discord-activities.com:443,discordactivities.com:443,discordsays.com:443,discordstatus.com:443,remote-auth-gateway.discord.gg:443

Firefox attempt with network.http.http3.alt-svc-mapping-for-testing (I tried adding other addresses too but keeping it simple with one hostname until I get a working one):

discord.com;h3=":443";h3-29=":443"
unitythemaker commented 1 month ago

image

unitythemaker commented 1 month ago

Hmm I just removed the h3-29, Firefox sent a few ICMP packets, it failed then fellback to TLS. However, I don't see any ICMP packets with Chromium.

image