古い記事
ランダムジャンプ
新しい記事
Firefox アドオン開発者センター

Firefox 拡張機能の作り方は公式ドキュメントを参考にすればよいし、ADD-ONS (ChromeウェブストアのFirefox版みたいなの) で一般公開する方法も公式ドキュメントを参考にすればよい。

はまりどころ


Chrome 拡張機能と同じソースを使おうとするときのはまりどころ。

  • (1) "extension ID" が必要。こういうのを manifest.json に追加する必要がある。
    "browser_specific_settings": {
      "gecko": { "id": "kiseppe_ff@example.com" }
    },
    
    ただし、これが入っていると Chrome での公開作業で怒られる。結局別ソースにするしかない。
  • (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 サーバが乗っ取られたらやられ放題だよね、という話なので修正していく。

関連情報