Repository navigation
fix(desktop): detect Chromium profiles for Linux cookie import - #25698
ScaleLeanChris wants to merge 2 commits into
Conversation
ApprovabilityVerdict: Needs Human Approval Macroscope's review found this PR requires human approval — The production changes add Linux Chromium to the default cookie-import registry, extending existing sensitive browser-cookie handling to a newly exposed source. The test addition also introduces a file-level static-analysis suppression, so the change warrants human review. You can add or adjust custom eligibility rules. Learn more. |
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes.
|
| Layer / File(s) | Summary |
|---|---|
Register the Chromium source packages/contracts/src/browserImport.ts, apps/desktop/src/preview/BrowserImport/Sources.ts |
Adds chromium to the browser import source IDs and defines its Linux-only user-data directory and secret application name. |
Validate Chromium cookie import apps/desktop/src/preview/BrowserImport/BrowserImport.test.ts |
Adds a test for both supported cookie database paths. It checks source discovery, profile metadata, the imported cookie value and fields, import counts, and store flushing. |
Priority:
Estimated code review effort: 2 (Simple) | ~10 minutes
Change: Bug fix
Suggested labels: bugfix, size:S
Suggested reviewers: t3dotgg
Merge Risk: 
Minimal · previous review 0839a
-
Chromium profile discovery and cookie import appear ready to merge after normal checks.
Pre-merge checks: 
4
-
Full details: Description check
-
Explanation
The description covers the problem, change, scope rationale, verification results, limitations, and implementation details. It explains why no issue or maintainer approval link is included for this focused omission.
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
|
Note Written by thanks @ScaleLeanChris. the linux-only registry entry and shared source id correctly reuse the existing discovery, keyring, and cookie importer. i preserved your commit and merged current main without rebasing. no production or test code needed changing: the fix remains 12 production lines, with both supported cookie paths covered in the existing test file. verification at
unverified: the desktop import wizard, before/after ui captures, and a live secret service/v11 keyring import. the web dev server has no electron ipc bridge, so a chrome-only screenshot would not prove this desktop flow. upstream workflows, including ci, are stopped at |
|
Note Written by Verified in a real dev environmentverified unchanged head
before, main: after, exact pr head, matching browser data: running-browser guard, source/target selection, and successful import. idle pauses are shortened; this is not a timing measurement: actual imported profile making an authenticated request: neighboring default profile remains isolated: short runtime transcript: Not verifiedlive chromium secret-service/v11 encryption, a real media note: git.cafe renders these external uploads as links. i reopened the comment and checked that behavior; the image files and app-browser video playback were verified directly. |




Linux Chromium users can reach Settings → Browser → Browser profiles → Add profile and see “No supported browsers found” despite having a populated
~/.config/chromium/Default/Cookies. The existing Linux Chromium reader supports this database, but Chromium itself is absent from the source registry and shared source-ID contract.Register Chromium on Linux using its standard profile directory and
chromiumSecret Service application name. This reuses the existing discovery, running-browser checks, decryption, and import flow. Other platforms and nonstandard profile directories are outside this fix.This is a small, focused omission in the established Linux Chromium cookie-import capability: Chrome and Helium already use the same reader. No new import workflow, setting, or encryption implementation is introduced.
Validation:
Reproduced on Linux with T3 Code
0.1.3-nightly.20261026.3726: Chromium is installed, itsLocal StatedeclaresDefault, andDefault/Cookiesexists, but the installed source registry omits Chromium.Added a parameterized regression test for
CookiesandNetwork/Cookies. Both cases fail on the base commit because the source is missing, then pass with this fix. They check source discovery, shared-schema decoding, encrypted-cookie import, host-only scope, and flushing the target store.vp test run apps/desktop/src/preview/BrowserImport/BrowserImport.test.ts apps/desktop/src/preview/BrowserImport/Sources.test.ts apps/desktop/src/preview/BrowserImport/ChromiumCookies.test.ts apps/desktop/src/preview/BrowserImport/ChromiumKeys.test.ts: 54 passed.vp run check:changed: formatting, lint, both knip passes, affected-package/dependent typechecks, and neighboring tests pass.Ran the changed importer in Electron 44.9.3 with an isolated temporary home and a synthetic encrypted Chromium database, writing to a real Electron cookie session:
The runtime smoke check uses basic-storage v10 fixture encryption. A live Chromium Secret Service/v11 session and the import wizard UI were not exercised. Personal session cookies were not imported.
Implemented with GPT-6.1 Sol through the Codex harness in T3 Code.