この記事では、WebExtension を Firefox にインストールする方法を 2 つ紹介します。
- ディスクから読み込む: アドオンの開発中にテストしたい場合に最も簡単な方法です。
- パッケージ化してインストールする: この方法を用いると、アドオンをインストール可能なファイルにパッケージ化し、Firefox へ永続的にインストールさせることができます。自分の作ったアドオンを他の人に配布する際はこの方法を用いることになります。また、リリース版の Firefox にインストールさせるには、アドオンに署名をすることも必要になります。
ディスクから読み込む
WebExtension を Firefox で動作させるには、この方法が最もシンプルです。また、ブートストラップ型拡張機能 や Add-on SDK を使ったアドオン といった、再起動の要らないアドオンはすべてこの方法でインストールできます。
ここでは Firefox 45 以降が必要となります。
ディスクから読み込むには、
- Firefox を起動し、
- URL バーに "about:debugging" と入力し、
- "一時的なアドオンを読み込む" をクリックし、
- アドオンのディレクトリを開き、アドオン中のファイルを任意に選択します。
これでアドオンがインストールされ、Firefox を再起動するまで有効になります。
一時的なアドオンの更新
この方法でアドオンをインストールした場合、アドオンのファイルを更新すると何が起きるでしょうか?
Firefox 47 以前
- オンデマンドに読み込まれるファイル(content scripts や ポップアップ など)を更新した場合、変更は自動的に取り込まれ、次に content scripts が読み込まれたりポップアップが表示された際に反映されます。
- 常に読み込まれているファイル(background scripts など)を更新した場合、about:addons のページでアドオンを無効化・有効化すると変更が反映されます。
- manifest.json ファイルを更新した場合、Firefox を再起動してアドオンを再度読み込ませる必要があります。
Firefox 47 以前では、Firefox を再起動せずに「一時的なアドオンを読み込む」をクリックしても更新は反映されない ことに注意してください。
Firefox 48 以降
- オンデマンドに読み込まれるファイル(content scripts や ポップアップ など)を更新した場合、変更は自動的に取り込まれ、次に content scripts が読み込まれたりポップアップが表示された際に反映されます。
- 他の場合に関しては利便性が向上しました。「デバッグ」ボタンの横にある「リロード」ボタンをクリックすることで、以下のことが可能となります。
- 永続的なスクリプト(background scripts など)のリロード
- manifest.json ファイルが再度パースされ、
permissions
/content_scripts
/browser_action
などに対する変更の反映
Firefox 48 のみに関する注意点として、about:debugging と about:addons に表示されるアドオンの名前と説明文は、「リロード」ボタンをクリックしても更新されません。この問題は Firefox 49 で修正されます。
パッケージ化してインストールする
ディスクからの読込は 開発 / テスト / デバッグ のサイクルにおいては有効です。しかし、アドオンを他の人と共有したい場合は、アドオンを インストール可能な形式にパッケージ化する必要があります。
パッケージ化
Firefox のアドオンは XPI ファイルでパッケージ化されます。XPI ファイルとは単なる ZIP ファイルですが、ファイルの拡張子は ".xpi" となります。
一つ注意しなければならないのは、アドオンのファイルを含んだディレクトリの ZIP ファイルではなく、アドオンのファイルを直接含んだ ZIP ファイルとする必要がある点です。
Windows
- アドオンのファイルが含まれているフォルダを開きます。
- ファイルすべてを選択します。
- 右クリックして "送る" → "圧縮(zip 形式)フォルダー" を選択します。
- 作成されたファイルの名前を "something.zip" から "something.xpi" に変更します。
Mac OS X
- アドオンのファイルが含まれているフォルダを開きます。
- ファイルすべてを選択します。
- 右クリックして "n 項目を圧縮" を選択します。
- 作成されたファイルの名前を
Archive.zip
からsomething.xpi
に変更します。
Linux / Mac OS X Terminal
cd path/to/my-addon/
zip -r ../my-addon.xpi *
インストール
XPI ファイルをインストールする前に、次のどちらかの手順を踏む必要があります。
- XPI ファイルに署名する
- 未署名の XPI ファイルをインストール可能にする。ただし、この設定は Firefox Nightly か Firefox Developer Edition のみ可能であることに注意してください。自分のアドオンを一般に配布したい場合は署名が必要です。
アドオンに署名する
XPI ファイルに署名するには、Signing and distributing your Add-on の記事を参照してください。
未署名のアドオンを有効にする
未署名のアドオンを有効にするには、以下の手順に従ってください。
- Firefox Developer Edition または Firefox Nightly をダウンロード、インストール、起動してください。
- 未署名アドオンのインストールを制御する Firefox の設定項目を変更します。この設定は Firefox Developer Edition と Firefox Nightly のみ可能です。
- Firefox の URL バーに
about:config
を入力します。 - 検索欄に
xpinstall.signatures.required
と入力します。 - 設定項目をダブルクリックするか、右クリックからの "切り替え" を選択し、値を
false
に変更します。
- Firefox の URL バーに
XPI ファイルを Firefox にインストールする
XPI ファイルに署名した場合でも、署名の制約を無効化した場合でも、XPI ファイルをインストールする手順はどちらも同じです。
about:addons
に移動します。- XPI ファイルをページにドラッグ & ドロップするか、歯車アイコンのメニューを開いて "ファイルからアドオンをインストール" を選択します。
- 表示されたダイアログで "インストール" をクリックします。
他にも、"ファイル" → "開く" から XPI ファイルを選択したり、Control+O (Command+O) で選択することも可能です。
アドオンを Firefox OS にインストールする
USB か Wifi で接続されたデスクトップ PC で WebIDE を起動すれば、WebIDE からアドオンをインストールすることができます。WebIDE で "path/to/my-extension" をパッケージ型アプリとして開いてください。
manifest.json の認証状況が正しければ、接続されたデバイス(Firefox OS の nightly ビルドで動作しているもの)にアドオンをインストールし、実行することができます。
このアドオンの初回実行時は、Firefox OS のデバイスで Settings → Add-ons で有効にする必要があります。
トラブルシューティング
起こりやすい問題には以下のようなものがあります。
"This add-on could not be installed because it has not been verified."
- アドオンが署名されていないため、未署名アドオンのインストールを有効にしているか 確認してください。
"This add-on could not be installed because it appears to be corrupt."
- アドオンのファイルを含んだ ディレクトリの ZIP ファイルではなく、アドオンのファイルを直接含んだ ZIP ファイルであるか確認してください。manifest.json は ZIP ファイルのルートに置かれていなければなりません。
- manifest.json において applications キーの値に "gecko" が設定されているか確認してください。
- Firefox 44 以降を使用しているか確認してください。
- コードや JSON ファイルにシンタックスエラーがないことを確認してください。
- ブラウザコンソール に他の情報が表示されていないか確認してください。
何も起こらない
- ファイル名の末尾が確かに
.xpi
であるか確認してください。OS によってはファイルの拡張子を本当に 隠したがるものがあります。- Windows の場合、 View → Show / Hide: File Name Extensions を確認してください。
- Mac OS X の場合、 File → Get Info → Name and Extension を確認してください。
- インストール時のプロンプトでクリックを間違えたか、プロンプトを見失ってしまった可能性があります。Nightly の戻るボタン横にあるパズルピースのアイコンを探してください。そのアイコンをクリックするとポップアップが再度表示されます。
コンソールを確認する
アドオンが解凍されたり読み込まれる過程に関して、他のエラーメッセージが ブラウザコンソール に表示されている場合があります。