Opened 3 months ago

Last modified 5 days ago

#28044 new defect

Integrate Tor Launcher into tor-browser

Reported by: gk Owned by: brade
Priority: High Milestone:
Component: Applications/Tor Launcher Version:
Severity: Normal Keywords: AffectsTails, ux-team, TorBrowserTeam201901
Cc: tbb-team, intrigeri Actual Points:
Parent ID: Points:
Reviewer: Sponsor:


We need to move away from our XPCOM extensions, Tor Launcher being one of them. As for Tor Browser it might be hard/impossible. if we tried to reimplement everything Tor Launcher does with the WebExtensions API. Instead we plan to integrate it tighter into the browser itself making use of it's capabilities.

This ticket is the parent ticket for this plan.

We need probably a proposal making sure we have the plan right before going to implement it.

Child Tickets

Change History (8)

comment:1 Changed 3 months ago by gk

FWIW: #25260 has some good historical context for options on how to integrate Tor Launcher into tor-browser. We can benefit from the work done there.

comment:2 Changed 3 months ago by antonela

Keywords: ux-team added

comment:3 Changed 3 months ago by gk

Keywords: TorBrowserTeam201811 added; TorBrowserTeam201810 removed

Moving our tickets to November.

comment:4 Changed 6 weeks ago by gk

Keywords: TorBrowserTeam201812 added; TorBrowserTeam201811 removed

Moving our tickets to December.

comment:5 Changed 10 days ago by gk

Keywords: TorBrowserTeam201901 added; TorBrowserTeam201812 removed

Moving tickets to Jan 2019.

comment:6 Changed 9 days ago by mcs

Cc: tbb-team added; mcs removed

Kathy and I did some research and experimentation over the past couple of days, and we believe the best approach is to:

  1. Integrate Tor Launcher directly into Tor Browser, following up on the work that Matt did here:
  2. Keep tor-launcher.git as a separate repository so that other projects such as TorBirdy can continue to package the code as an XPCOM extension.
  3. Fix other incompatibilities with the Firefox ESR68 codebase as we find them. For example, support for XUL overlays has been removed by Mozilla, so we will instead need to preprocess some of the Tor Launcher source files in order to include some shared XUL.

For 1. above we will need decide on the best way to pull the Tor Launcher code into Tor Browser. We could use a git submodule and integrate tightly with the browser build process, or we could "post process" browser/omni.ja to add the necessary Tor Launcher pieces.

A related goal will be to keep the Tor Launcher files together as much as possible within the browser package; this will make it easier for developers to drop in updated Tor Launcher files for testing (but it will never again be as easy as just copying over an .xpi file). Within browser/omni.ja, we will probably need to place files under these subdirectories:

  • defaults/preferences/
  • chrome/torlauncher/
  • components/torlauncher/

and we will need to ensure that the following manifest files are updated to register the Tor Launcher pieces:

  • chrome/chrome.manifest
  • components/components.manifest

We will also need to decide whether it is worthwhile to rename the preferences, e.g., extensions.torlauncher.loglevel could be renamed to torlauncher.loglevel

comment:7 Changed 6 days ago by gk

Sounds all good to me. As to the submodule vs. post-processing question. What are the trade-offs here?

comment:8 Changed 5 days ago by gk

Something that came to mind: we should think what to do with the Tor Network Settings... as the onion button is likely to go away during the Torbutton integration.

Note: See TracTickets for help on using tickets.