本件は、2023/09頃には解決しているはずの話です。
TL;DR
Q. chromeで動いたwebextensionsがFireFoxでcontent_scripts内のconsole.log()のメッセージをコンソールに出力しないのはなぜか?
A. FireFoxが 2023/06 FireFox 114.0時点でmanifest v3に対応していないにもかかわらずエラーを全く出さないため。
# 再現
```: ディレクトリ構成
DaisyWarekiConv/
├── manifest.json
├── icons/icon128.png
└── my_content_script.js
```
```: my_content_script.js
```
```: manifest.json
```
# 間違った解決策
## Webコンソール ではなくブラウザーコンソールを開く
FireFoxのwebextensionsのconsole.log()メッセージはF12キーで開くWebコンソールではなく、Ctrl+Shift+Jで開くブラウザーコンソールに表示される、らしい。
https://qiita.com/mouseofmicky/items/05dc51f792e16e25ae29
Fコレ自体が相当にFireFox固有の落とし穴感があるが、こちらをチェックしていてもやはりログメッセージは出力されない。
また、開発ツールのコンソール(一時的な拡張機能の読み込み>調査 ボタンから開く )もあるが、こちらにも表示されない。これはbackgroundのメッセージが表示される(のだったと思う)。
## document.addEventListener('DOMContentLoaded', ~)
そもそもcontent_scriptsがデフォルトでページ読み込みが完了したこのあたり(雑)のタイミングで読み込まれるものであるし、console.log()の出力成否はページの描画状況とは関係ない。
## document.body.appendChild(elemDebugMsgOnDisplay);
console.logが出ないならDOMでページ上に直接出してしまえばいいじゃない、のアプローチ。
content_scriptsが走っていないので DOM書き換えが行われず、うまくいかない。
# 解決策
manifest v2(MV2)に変更する。
```
```
# おわりに
FireFoxはまだMV3未対応できちんと動かないなら、最初から読み込まないとか、動かないというエラーログを出してほしい。
0 件のコメント:
コメントを投稿