Skip to content

Sync click events across browser instances via WebRTC.

Notifications You must be signed in to change notification settings

BlakeASmith/tabpuppet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TabPuppet

TabPuppet is a firefox add-on for synchronizing click events across browser instances. It works by establishing a peer-to-peer connection (via a WebRTC Data Channel) and sending the XPATH of any elements clicked at the "host" machine to any number of connected "client" machines (star topology).

Progress

  • Establish a peer-to-peer connection using a signalling server
  • Mirror clicks from one tab to another via the peer-to-peer connection
  • Allow multiple clients to connect to join a room (create a star topology)
  • Automatically re-inject the content scripts (for monitoring and mirroring clicks) on page reload/redirect
    • note: does not work with host and client running in the same browser
  • Deploy signaling server to google cloud
  • Allow for bi-directional synchronization as an option
  • Mirror other actions such as searches in the address bar
  • Handle errors regarding host and clients becoming out of sync
  • Add configuration of the start URL to the popup instead of using the current active tab's URL
  • Allow multiple active sessions to be hosted from a single browser
  • Allow clients to connect mid-session and load up with the same state as the host tab
  • Notify peers when the host exits the room

Installing

The add-on is currently only available by loading it as a temporary add-on in firefox.

First clone the repo.

git clone https://github.com/BlakeASmith/tabpuppet.git

Open firefox and type about:debugging into the address bar.

Next, click the "this firefox" button

Click load temporary add-on and navigate to the manifest.json file for the extension


Usage

Sharing Your Tab / Hosting

Navigate to a website that you would like to start sharing from. Create a room by clicking the Create Room button in the popup.

This will open the current website in a new tab, any clicks within the new tab will be replicated at the connected clients.

The signalling server generates a token/key which others can use to join the session. The token is only used to establish the peer-to-peer connection between your browser and the clients.

Joining a Room

To join an existing room as a client click the Join Room button in the popup and paste in the token/key provided by the host of the room.



After hitting the Join button, a new tab will open in which any clicks made at the Host will be mirrored.

About

Sync click events across browser instances via WebRTC.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published