Documentation of Tor Browser's JS API

I’d be very grateful if someone could point me at the public JS API documentation for specific TB functionality - e.g. documentation on how to change Tor circuit for a site. My guess is that some of TB’s functionality is accessible via the various FF JS API’s (Chrome DevTools?) but I have not been able to find this documented anywhere.

If this question is better addressed as an issue on TB’s GitLab source code page I’ll head over there (I see the devs forum here is read only). Many thanks.

We don’t have any public facing documentation for our internal Tor Brower JS APIs. You can look at the source in-tree or in the chrome-ui debugger; most of our added JS modules are named Tor*.sys.mjs with I’m sure some exceptions.

Broadly speaking though, I would not recommend building anything off of these APIs, as we make absolutely no effort to maintain any kind of versioning scheme, backward compatibility, etc. These are internal private APIs so please don’t expect them to remain stable over time.

That said, it may be helpful to understand why you want to access this functionality programmatically? Is there some UI deficit that needs to be addressed?

@morgan

Caveat understood, thanks. I am writing an extension for Selenium for Tor Browser (in Ruby). My project is at GitLab.com under /matzfan/selenium-tor - for some reason I can’t post a link to it here.

EDIT: matzfan / Selenium Tor · GitLab -richard :slight_smile:

@Noino hey that’s pretty neat! There is also: GitHub - webfp/tor-browser-selenium: Tor Browser automation with Selenium.

Would you like us to add you as a downstream dependency to contact during our release process to notify you when we change and potentially break things for you in alpha? Let me know and we can add your email to the check-list :slight_smile:

@morgan

I’m familiar with that python project and have taken some inspiration from it (I must credit the authors in my own project). It would be great to be added to your downstream deps list, thanks.