Skip to content

Draft: Bug 40458: Implement `.tor.onion` aliases

This MR reimplements the support of .tor.onion URLs.

This patch is composed of these parts

  • a C++ service, to share data between C++ and JavaScript;
  • a modification to the SOCKS code, that detects .tor.onion domains, asks the aforementioned service if it is known, and in case it uses the real domain for the communication with tor;
  • a modification to the TLS code, that replaces the .tor.onion with its real address (I cannot help but seeing this as a big red flag, please let me know your thoughts);
  • a JS module that provides an API to create/edit/remove lists and automatically updates them (this is the actual replacement for HTTPS-Everywhere);
  • the about:rulesets page, to call the API from a GUI.

The circuit display has been modified as well, to ask the C++ service the real domain, and display it instead the .tor.onion domain (please, see torbutton!84 (merged)).

I did this choice because I think it makes sense to tell the user the real domain, somewhere. Maybe we should make even more visible the redirect.

The MR does not include the support for list icons, because the API that manages them seems not to work in Tor Browser (I had some errors about the profile directory not found).

A possible followup for this bug could be asking list maintainers to put an icon in the same directory we fetch the rulesets from.

Fixes #40458 (closed), #40760 (closed), and replaces #28005 (closed).

Edited by Pier Angelo Vendrame

Merge request reports