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.createUnixDomainTransport
instead ofnsISocketTransportService.createTransport
, but both return the same type of abstraction (nsISocketTransport
); - for SOCKS,
network.proxy.socks
is set tofile:///....
, instead of having the IP address/hostname; - different
+__ControlPort
and+__SocksPort
are 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.