Chrome 拡張デバッグ時の罠!console.log の出力は3か所ある!
最近 Chrome 拡張(v3)づくりをはじめました。
デバッグを普通の javascript のノリでやったら
console.log の出力が見れなくて困ったのでメモ。
「web ページ上で F12 押す → DevTools の console 欄を見る」
だけでは見れないパターンもあるらしい。
環境
2023/11/29 現在
manifest version: 3
Chrome バージョン: 119.0.6045.160(Official Build) (64 ビット)
OS: Windows 10
なんで通常の DevTools で見られないのか?
console が3つ別々にあるからです。
いや、調べてないだけで4つ以上あるのかもだけど、私が確認した範囲では3つ。
原理とか仕組みはわからないけど、とりあえず、「別の場所を見ないといけない」ということだけ抑えておけばデバッグを進められます。
その1:コンテントスクリプト(主に現在アクティブなタブに対して働きかける)
manifest.json
ファイルの"content_scripts":
のところで定義した js ファイルのことです。
これの console.log は通常の javascript と同じ所に出力されます。
やり方は、アクティブタブのページ内にクリック等でフォーカスしてから F12。ブラウザの通常の DevTools ウィンドウの Console タブ。
その2:ポップアップ(拡張機能のアイコンを押すと表示される小さいページ)用 スクリプト
manifest.json
ファイルの
"action": { "default_popup": },
のところで定義した html ファイルから呼び出す js ファイルにあたる。
拡張機能のアイコンを右クリック、「ポップアップを検証」をクリックすればよい。
その3:バックグラウンドで動作するサービスワーカー(右クリックメニューの追加などに使う)
manifest.json
ファイルの
"background": { "service_worker": },
で定義した js ファイルのこと。これが一番見つけにくい印象。
まず、拡張機能のアイコンを右クリック、「拡張機能を管理」で拡張機能のページへとぶ。
次に、中ほどにある
「ビューを検証 ・Service Worker」
を見つけてクリックすればよい。