v1.2.1
A fix for Firefox, which v1.2.0 broke, and the last of the rename.
Everyone upgrading has to re-run the install command, on Chrome as well as Firefox — see below.
go run github.com/iazat/ts-browser-ext@latest --install=C<your-extension-id> # Chrome
go run github.com/iazat/ts-browser-ext@latest --install=F # Firefox
Chrome's id is printed by the popup. Installing clears the old registration for you; nothing is left behind.
Firefox could not reach its backend in v1.2.0
Renaming the extension changed its Firefox add-on id, but the installer went on writing the old id into the native messaging host manifest. Firefox checks that list before it will let an extension talk to a host, so the two being out of step meant the connection was refused — and it failed silently: the extension installed, the popup opened, the backend simply never answered.
If you installed v1.2.0 on Firefox, re-run the install command after upgrading. The registration written by v1.2.0 names the wrong id and has to be replaced:
go run github.com/iazat/ts-browser-ext@latest --install=F
The two ids are now checked against each other by a test, so they cannot drift again.
The backend no longer registers itself under Tailscale's name
The native messaging host was called com.tailscale.browserext.chrome, and installing wrote a file by that name into your browser's configuration directory. An extension nobody at Tailscale publishes had no business leaving a file bearing their name on your disk.
It is now io.github.iazat.tailext.chrome (and .firefox). This is why the re-install is needed: the browser looks for a registration matching the name the extension asks for, and the old one no longer matches. Installing removes the stale file, and --uninstall clears both the old and new names.
The names on the two sides — the string the extension passes to connectNative, and the file the installer writes — are now checked against each other by a test, along with the Firefox add-on id. All three were free to drift before, and two of them had.
Also
- The management page at
http://100.100.100.100/still called itself "Tailscale Extension" and carried Tailscale's mark. It is served from inside the Go backend, so it was missed when the extension's own files were renamed. - Running the backend with no arguments printed usage suggesting
--install=chrome, which has never been a valid argument — it takes a browser letter followed by the extension id. - The packaged zips are now byte-for-byte reproducible: rebuilding the same commit produces the same checksums, so a release asset can be checked against a build you made yourself.
Install
Download the zip for your browser — ts-browser-ext-chrome-v1.2.1.zip or ts-browser-ext-firefox-v1.2.1.zip — and unzip it. Each contains only what the browser needs; the source archives below carry the whole repository and are not what you want here.
Then load it unpacked, open the popup, and run the command it prints. Requires Go, and macOS or Linux. Full steps in the README.
Known limitations
- Firefox has still not been run live. This release fixes a bug that only a live Firefox would have caught, found by reading the code after the fact. Its test suite passes; nobody has loaded it through
about:debugging. - Windows cannot register the native host. The binary builds, but there is no registry install path yet.