自作 Firefox 拡張機能の公開とアップデート
2023-11-01-1
[Programming]
Firefox 拡張機能の作り方は公式ドキュメントを参考にすればよいし、ADD-ONS (ChromeウェブストアのFirefox版みたいなの) で一般公開する方法も公式ドキュメントを参考にすればよい。
はまりどころ
Chrome 拡張機能と同じソースを使おうとするときのはまりどころ。
- (1) "extension ID" が必要。こういうのを manifest.json に追加する必要がある。
"browser_specific_settings": { "gecko": { "id": "kiseppe_ff@example.com" } },
- (2) アップするやつを zip で固める時に chrome のときのようにディレクトリごとだとダメ。
当該ディレクトリに cd して下記を実行する
$ zip -r -FS ../kiseppe-ff.zip * --exclude '*.git*' --exclude '*.DS_*'
このへんの話は公式ドキュメントに書いてある。
公開方法
公開するには、アドオン開発者センターに行く。
- 新規の場合は「新しいアドオンを登録」
- アップデートの場合は対象をクリックして、その先で「新バージョンをアップロード」
警告と対応
- innerHTML で変数を使うと警告
警告: Due to both security and performance concerns, this may not be set using dynamic values which have not been adequately sanitized. This can lead to security issues or fairly serious performance degradation.
b.innerHTML = `実質<br><b>${jsdr}%</b></br>オフ`; ↓修正 b.appendChild(document.createTextNode('実質')); b.appendChild(document.createElement('br')); const bj = document.createElement('b'); bj.textContent = jsdr + '%'; b.appendChild(bj); b.appendChild(document.createElement('br')); b.appendChild(document.createTextNode('オフ'));
そもそも Chrome ウェブストアでは怒られない。
API サーバが乗っ取られたらやられ放題だよね、という話なので修正していく。