I contributed two PRs to tailscale/ts-browser-ext, the native messaging backend that powers the Tailscale browser extension for Chrome and Firefox.
PR #16 — Windows Support
github.com/tailscale/ts-browser-ext/pull/16
The extension previously only worked on Linux and macOS. This PR adds full Windows support:
- Registry-based native messaging — On Windows, Chrome and Firefox discover native messaging hosts via registry keys under
HKCU, not filesystem paths. Addedregistry_windows.goto create/delete the correct keys underSoftware\Google\Chrome\NativeMessagingHostsandSoftware\Mozilla\NativeMessagingHosts. - Platform-specific syslog —
log/syslogdoesn’t exist on Windows. Extracted the syslog setup intosyslog_other.go(unix/darwin) andsyslog_windows.go(no-op), so the binary compiles cleanly on all platforms. - Binary naming — Windows needs
.exesuffix. Added abinaryName()helper used by bothinstall()anduninstall(). - JSON path fix — Used
filepath.ToSlashso thepathfield in the native messaging JSON manifest uses forward slashes, which Chrome and Firefox accept on Windows. - Popup login fix — The “Log in” link in the popup was a dead
#loginhref. Now it actually opens the auth URL viachrome.tabs.create.
PR #17 — Update Tailscale to v1.96.5
github.com/tailscale/ts-browser-ext/pull/17
The project was pinned to Tailscale v1.80.1 and Go 1.23.4. This PR bumps them:
- Tailscale v1.80.1 to v1.96.5 — Picks up all upstream improvements and fixes.
- Go 1.23.4 to 1.26.1 — Moves to the latest stable Go release.
- Import path migration — The local API client moved from
tailscale.com/client/tailscaletotailscale.com/client/local, so updated the import andIPNBusWatchertype references accordingly.
Both PRs are currently open and under review.