Skip to content

Add Vivaldi browser support#114

Open
Spence1115 wants to merge 1 commit into
browserutils:masterfrom
Spence1115:feat/vivaldi-support
Open

Add Vivaldi browser support#114
Spence1115 wants to merge 1 commit into
browserutils:masterfrom
Spence1115:feat/vivaldi-support

Conversation

@Spence1115

@Spence1115 Spence1115 commented Jul 10, 2026

Copy link
Copy Markdown

Add Vivaldi browser support

Vivaldi is a mainstream Chromium-based browser that kooky doesn't currently detect. This adds a self-contained browser/vivaldi package and registers it in browser/all.

Why it's more than a Brave clone

Vivaldi encrypts cookies with the standard Chromium scheme, but stores the encryption key under its own entry:

  • macOS — the Vivaldi Safe Storage Keychain account. Derived automatically from BrowserStr = "vivaldi", so no extra config is needed there.
  • Linux (KWallet / xdg-desktop-portal) — under the portal application id com.vivaldi.Vivaldi. This repo's internal/chrome/chrome_linux.go already has a KWallet fallback branch commented "used by Vivaldi, newer Chromium" that reads portalAppIDValue(); the finder now calls SetPortalAppID("com.vivaldi.Vivaldi") so that path resolves.

Profile roots

OS Root
macOS ~/Library/Application Support/Vivaldi
Linux ~/.config/vivaldi and ~/.config/vivaldi-snapshot (+ Windows roots under WSL)
Windows / WSL %LocalAppData%\Vivaldi\User Data

The finder mirrors the Edge finder's structure (per-OS root files in-package + a finder that customizes the store), so it stays consistent with the existing Chromium-derivative pattern.

Verification

  • go build ./..., go vet ./..., go test ./... pass.
  • Cross-compiled browser/vivaldi for darwin, linux, windows, android, ios, js/wasm, aix, freebsd.
  • Runtime, on macOS: go run ./cmd/kooky -b vivaldi -d github.com decrypts real cookies from a live Vivaldi profile (correct logged_in/user_session values).

I don't have a Linux/Windows machine to verify those key stores at runtime — the paths and the portal id follow Vivaldi's documented locations and this repo's existing Linux key-storage code, but a maintainer with those platforms confirming would be welcome.

Closes #115

Vivaldi is a Chromium-based browser whose cookies use the standard Chromium
encryption scheme, but under its own key-store entry: the "Vivaldi Safe Storage"
Keychain account on macOS, and the "com.vivaldi.Vivaldi" xdg-desktop-portal
application id on Linux (KWallet/portal key storage).

Add a self-contained browser/vivaldi package mirroring the Edge finder:
per-OS profile roots (~/Library/Application Support/Vivaldi on macOS,
~/.config/vivaldi[-snapshot] on Linux, %LocalAppData%\Vivaldi\User Data on
Windows/WSL) and a finder that sets the portal application id so the Linux
KWallet/portal key lookup resolves. Registered in browser/all.

Verified end-to-end on macOS: decrypts real github.com cookies from a live
Vivaldi profile.
@Spence1115
Spence1115 marked this pull request as ready for review July 10, 2026 17:28
@Spence1115
Spence1115 marked this pull request as draft July 10, 2026 17:29
@Spence1115
Spence1115 marked this pull request as ready for review July 10, 2026 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Vivaldi browser is not detected

1 participant