mirror of
https://github.com/pasky/chrome-cdp-skill.git
synced 2026-09-19 04:47:42 +08:00
feat: add Linux Flatpak browser paths to DevToolsActivePort discovery
On Linux systems where Chromium/Chrome is installed via Flatpak, the tool fails entirely because Flatpak sandboxes each app under its own XDG config directory (~/.var/app/<app-id>/config/) instead of the standard ~/.config/ location. Failure on a Fedora Silverblue / Bluefin system with Flatpak Chromium: $ node cdp.mjs pages No DevToolsActivePort found. Enable remote debugging at chrome://inspect/#remote-debugging (exit code 1) This happens even when Chromium is running with --remote-debugging-port, because the DevToolsActivePort file is written to: ~/.var/app/org.chromium.Chromium/config/chromium/DevToolsActivePort instead of the expected: ~/.config/chromium/DevToolsActivePort Flatpak-packaged Chromium-based browsers use the following paths: - org.chromium.Chromium → chromium - com.google.Chrome → google-chrome - com.brave.Browser → BraveSoftware/Brave-Browser - com.microsoft.Edge → microsoft-edge - com.vivaldi.Vivaldi → vivaldi Add these as candidates in getWsUrl() alongside the existing Linux ~/.config/ paths and the macOS ~/Library/Application Support/ paths. With this fix, no CDP_PORT_FILE workaround is required on Flatpak-based desktop distributions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
This commit is contained in:
@@ -48,6 +48,14 @@ function getWsUrl() {
|
||||
'vivaldi', 'vivaldi-snapshot',
|
||||
'BraveSoftware/Brave-Browser', 'microsoft-edge',
|
||||
];
|
||||
// Linux Flatpak: ~/.var/app/<app-id>/config/<name>/DevToolsActivePort
|
||||
const flatpakBrowsers = [
|
||||
['org.chromium.Chromium', 'chromium'],
|
||||
['com.google.Chrome', 'google-chrome'],
|
||||
['com.brave.Browser', 'BraveSoftware/Brave-Browser'],
|
||||
['com.microsoft.Edge', 'microsoft-edge'],
|
||||
['com.vivaldi.Vivaldi', 'vivaldi'],
|
||||
];
|
||||
const candidates = [
|
||||
process.env.CDP_PORT_FILE,
|
||||
...macBrowsers.flatMap(b => [
|
||||
@@ -58,6 +66,10 @@ function getWsUrl() {
|
||||
resolve(home, '.config', b, 'DevToolsActivePort'),
|
||||
resolve(home, '.config', b, 'Default/DevToolsActivePort'),
|
||||
]),
|
||||
...flatpakBrowsers.flatMap(([appId, name]) => [
|
||||
resolve(home, '.var/app', appId, 'config', name, 'DevToolsActivePort'),
|
||||
resolve(home, '.var/app', appId, 'config', name, 'Default/DevToolsActivePort'),
|
||||
]),
|
||||
// Windows: %LOCALAPPDATA%/<name>/User Data/DevToolsActivePort
|
||||
...(IS_WINDOWS ? ['Google/Chrome', 'BraveSoftware/Brave-Browser', 'Microsoft/Edge'].flatMap(b => {
|
||||
const base = process.env.LOCALAPPDATA || resolve(home, 'AppData/Local');
|
||||
|
||||
Reference in New Issue
Block a user