Opened 5 months ago

Last modified 5 months ago

#33021 new enhancement

Sync tabs between Tor Browser instances

Reported by: sysrqb Owned by: tbb-team
Priority: Medium Milestone:
Component: Applications/Tor Browser Version:
Severity: Normal Keywords: TorBrowserTeamTriaged
Cc: Actual Points:
Parent ID: Points: 10
Reviewer: Sponsor:


We can think about synchronizing (some) open tabs between Tor Browser instances by each instance creating and registering onion services with other instances. The first iteration of this doesn't need to be crazy where we synchronize the exact viewport location of each page between instances, and it shouldn't synchronize all open tabs by default.

But, it'd be neat if we could select a tab in the browser and choose to which other Tor Browser instance that URL should be sent. The URL should not be opened automatically in the other instance, but it should be listed "somewhere" in the UI. If one wants to open one of the synced tabs, then they can open the list and select it.

To some degree this has the ricochet problem but it shouldn't be nearly as bad. The worse tradeoff is that both Tor Browser instances must be online at the same time. This could work well enough for desktop->mobile, but it'll be harder in some situations for desktop->desktop, and mobile->desktop.

Child Tickets

Change History (1)

comment:1 Changed 5 months ago by acat

I think it's an interesting idea :)

We did something similar using WebRTC instead of onion services to communicate between devices in my previous job. Just sharing it FWIW.

In our model the mobile was the "master": it was the the device that knew all other devices (desktops), and to add a new one you had to do it from the there (by scanning a QR code). In this model the "mobile" had a similar role the server has in a typical cloud sync solution (e.g. Firefox Sync).

As you mention, there is the issue that for two devices to sync both have to be available at the same time (e.g. one Tor Browser at home and one at work). To solve this we were assuming that the mobile would be almost 100% of the time available, so the idea was to make one desktop (e.g. at work) sync with mobile, and later make mobile sync with the other desktop (e.g. at home).

Unfortunately, there were some UX problems due to technical issues, since for the mobile browser to be available the user had to unlock the phone and open the app manually. It was not possible to communicate with the Android app via WebRTC after a while, I assume doing the same with onion services might run into the same problem. Or is there actually a way of sending some kind of push notification via an onion service in background?

Perhaps it would be just fine to have to unlock the phone and open Tor Browser to sync, and it would be just a matter of educating users. And of course we would not have to follow the same mobile-is-master model.

Note: See TracTickets for help on using tickets.