これは自分用の戒めのメモ。Chrome 拡張をデバッグしているときに、Chrome の普段使いの実プロファイル(Profile)を拡張の同期に使ってしまい、ログイン状態と拡張の状態をぐちゃぐちゃにしてしまった。
先に結論:これは「Chrome が勝手に調子悪くなった」んじゃなくて、誤った自動化操作の結果。
ローカル session で確認できた事実
- まず Chrome を強制終了するコマンドを実行した。要するに、使用中のブラウザプロセスをそのまま叩き落とした。
- その後、実際の Chrome を再起動し、実ユーザーディレクトリのデフォルト Profile を直接指す形で起動した。
- 起動引数にリモートデバッグポートと
--disable-syncが含まれていた。 - 対象ページは All API Hub の拡張設定ページ。
- ローカルの helper コードには本来「Chrome が実行中なら終了する」ガードがあったが、作業前に Chrome を強制終了してしまったため、そのガードを実質的に迂回した。
なぜ問題が起きたのか
Chrome のログイン状態、拡張の登録、同期状態、一部の設定は、実ユーザーディレクトリに強く紐づいている。
その実 Profile に対して同時に以下をやった:
- 実行中の Chrome を強制終了
- リモートデバッグ付きで実 Profile を乗っ取る
- 実 Profile に
--disable-syncを付与
結果として、「普段使いのブラウザ状態」と「自動化の一時操作」を同じ場所で混ぜてしまった。
こういう操作は底層データを完全に消すとは限らないけど、表層の状態は簡単に崩れる。例えば:
- Google アカウントがログアウトしたように見える
- 拡張が一時的に消えたり、再登録されたりする
- 拡張の設定/同期状態が巻き戻ったように見える
- 一部サイトのログイン状態や、ウィンドウ/セッション復元の挙動が不安定になる
今回の復旧状況
今回は、その後 Chrome に再ログインして拡張と設定の再同期を待つことで、主要機能はほぼ復旧した。
つまり、多くの底層データが「全部消えた」というより、Chrome のアカウント層・同期層・拡張登録層を自分でかき回したのに近い。
ただ、「復旧できた」ことは手順が正しかったことの証明にはならない。途中で発生した混乱と不確実性は実在している。
過去 session を辿った結果
ローカルのアーカイブを漁った。
結論:
- 2026-04-25 の今回は、完全で明確な証拠のつながりがある。
- それ以前にも「同じように Chrome を強制終了+実 Default Profile を乗っ取り」という事故があったかは、ローカルアーカイブでは同等の確度で裏付けられる証拠が見つからない。以前にも似た感覚はあったかもしれないが、今回が明確に確定できるケース。
今後のハードルール
今後 Chrome 自動化が絡む場合は、必ず以下を守る:
- 普段使いの実 Chrome Profile を自動化に使わない。
- ブラウザを乗っ取るために、実行中の Chrome を強制終了しない。
- 実 Profile に対して
--disable-sync、リモートデバッグ、一時的な実験用フラグを使わない。 - 拡張をデバッグする必要があるときは、独立した一時
user-data-dirか、専用のテスト Profile だけを使う。 - 拡張のアカウントデータを書き込む必要がある場合は、インポート/エクスポート、ストレージ層への書き込み、または専用 API を優先し、実ブラウザセッションのハイジャックはしない。
- どんなブラウザレベルの実験でも、事前に
Local State、Preferences、Secure Preferences、Sessionsをバックアップする。
本質は Chrome が不安定なんじゃなくて、自分が「本番環境」を「実験環境」として扱ったこと。
書き残して、次に同じミスをしないようにする。