Internet error may never be shown when bootstrapping never stops
For #40891 (closed), we have added a "You're offline" panel. However, it may not be shown in some cases in which it should.
Currently, its logic is waiting for the bootstrap to fail, and only then showing that error if we could not reach Moat.
The reason is that we do not want bootstraps to fail when the anti-censorship mechanisms provided by the user would work, but Moat is inaccessible. (This includes also domain fronting suddenly not working, or the Moat hoster deciding to cut us off, or whatever).
However, in some cases the bootstrap never stops, so it never fails, and Tor Browser remains stuck on it forever.
I have managed to get in this situation by connecting my computer to a LAN without Internet access (e.g., just connect the PC to an Ethernet switch without anything else plugged to, or connect it to a wireless access point without Internet access).
An idea is starting a timeout after the Internet was detected as offline (e.g., 30s or 1 minute), and if the progress is still below 10% (or some other threshold) when the timeout ends, we cancel the bootstrap and show the offline test.
The timeout could also start when the bootstrap begins, rather than starting when the offline tests fails.