Electron アプリは remote debugging フラグを黙って起動拒否することがある — CDP 自動化は実起動検証を先に行う
Electron
ブラウザ自動化
デスクトップアプリ
知識
運用
Electron 製デスクトップアプリは一般に Chromium の remote debugging ポート指定フラグで CDP を開き、Playwright 等からアタッチして自動化できる。ただしセキュリティ強化された製品は起動時引数をフィルタしており、このフラグを付けるとエラーも出さずプロセス自体が起動しない(2026-07 に主要 AI チャットの公式デスクトップアプリで実測。フラグなしなら正常起動、フラグ付きだと再現性をもって無言の起動失敗)。
誤解しやすい条件
- 失敗の症状が「ポートへの接続拒否」ではなく「無言の起動失敗」なので、起動待ちのタイミング問題やポート番号の衝突と誤診しやすい。フラグなしで正常起動するのにフラグ付きで起動しない場合は argv フィルタによる拒否を疑う。
- 対象が Electron 製かどうかは、アプリバンドル内の Frameworks ディレクトリに Electron Framework が含まれるかで数秒で確認できる(macOS の場合)。
検証手順(数分で完了)
- 対象アプリを終了する。
- remote debugging ポート指定付きで起動する(macOS なら open コマンドの引数渡し機能を使う。引数は新規起動時のみ効くため、既に起動中だと検証にならない点に注意)。
- 数秒待ってからプロセスの存在を確認し、localhost の該当ポートが提供する json/version エンドポイントへ HTTP 取得して CDP 応答を確認する。
- プロセスが存在せず、フラグなしでは正常起動するなら、CDP 経路はその製品では使えないと確定する。
判断への影響
デスクトップアプリ自動化・録画の設計で CDP アタッチを前提に置く前に、必ずこの実起動検証を先に済ませる。CDP 可なら Web 自動化資産(セレクタ操作・スクリプト注入)をほぼ流用でき、不可なら OS レベル自動化(アクセシビリティ API・キー/マウスイベント送出)+ 画面キャプチャに構成が変わる。後者は必要な OS 権限(アクセシビリティ・画面収録)も別物なので、この検証結果がアーキテクチャ全体を左右する。