Make IPC default again on Linux and macOS
At a certain point, Tor Browser switched to Unix sockets both for SOCKS and control where supported (Linux and macOS): #20111 (closed).
Then TCP was restored to reuse the same tor daemon for TorBirdy: tor-launcher@485ba945.
Also, Tor Browser had some problems when + and __ weren't yet a thing for the control port and socks port parameters: #20761.
Now, these aren't problems anymore, amd IPC still seems a good idea (easier to audit for leaks, or less leaks in general - according to @JeremyRand - and allows for multiple Tor Browsers at the same time, since the default branch tries to make a unique filename).
Also, everything is already in place, we just need to flip extensions.torlauncher.control_port_use_ipc and extensions.torlauncher.socks_port_use_ipc.
We should make them sticky, so that any previous user value is kept in user.js.
The differences in code between Windows and the other OS's are minimal:
- the control port uses nsISocketTransportService.createUnixDomainTransportinstead ofnsISocketTransportService.createTransport, but both return the same type of abstraction (nsISocketTransport);
- for SOCKS, network.proxy.socksis set tofile:///...., instead of having the IP address/hostname;
- different +__ControlPortand+__SocksPortare passed totor.
I think it should be pretty safe to use them. I've been doing that on my developer build in these days and everything kept working (but I also have a number of other changes for the torbutton refactor/removal).
So, in today's meeting we decided to prioritize this preference flip ASAP, already for 13.0a1, to have this in test for the 3 months before the 13.0 release.
I will do after !694 (merged) is merged.