最初のアドオンを作成したら、あなたは、他の人も試せるようにそれを配布したいと思うことでしょう。その際、addons.mozilla.org (AMO)などの場所を通じて一般向けに公開するか、あるいは限られた人のみに配布するかに関わらず、アドオンのパッケージに署名を施したいと思うでしょう。
アドオンに署名を施す
Firefox 41以降では、アドオンの配布にいくつかの制限が設けられました。Firefoxを対象とした拡張機能およびマルチパッケージ・インストーラは、リリース版およびベータ版のFirefoxに対してインストール可能にするために、Mozillaによって署名を施す必要があります。この制限はtypeが2または32アドオンに対してのみ適用され、テーマや言語パックなどのその他の種類のアドオンは署名を必要としません。ThunderbirdやSeaMonkeyのようにそれ以外のアプリケーションのみを対象とするアドオンも、同様にこの制限を免れます。署名されていないアドオンは、FirefoxのDeveloper Edition、Nightly、およびESR版では、設定を変更すれば引き続きインストールすることができます。
既定の状態では、Firefoxにインストール可能なアドオンに署名を施せるのはMozillaだけです。アドオンは、AMOへ登録して自動または手動のコード審査を通過することで署名されます。なお、その場合でもアドオンをAMOのサイト上に公開したりサイト上で配布したりする必要はありません。アドオンを自分自身で配布したい場合には非公開(Unlisted)という選択肢があり、その場合AMOは単に署名済みのパッケージを入手するための手段を提供することになります。
AMOへの登録
新しいアドオンは、この登録フォームを使ってAMOに登録できます。まず最初の段階として、開発者向け許諾を読んで同意して下さい。
次に、アドオンをAMOのサイト上で配布・公開したいかどうかを決定する必要があります。判断を下すにあたって以下の事を考慮して下さい:
- AMOは、月間100万件以上の訪問者・インストール回数がある非常に有名な配布プラットフォームです。Firefoxのアドオンマネージャに統合されており、AMOで公開されたアドオンはFirefoxのUI上から簡単にインストールすることができます。
- AMOに公開されるすべてのアドオンは、被雇用者とボランティアのチームによるコード審査とテストを受けます。アドオンは、様々な技術的ポリシーやコンテンツポリシーに合致することが求められます。そのため、アドオンの複雑さやその他の要因により、審査にかかる時間には数時間から数週間までの幅があります。
- 非公開のアドオンは多くの場合、自動的に審査され署名されます。アドオンが自動審査を通過しなかった場合には手動審査待ちのリストに加えられ、数日のうちに審査されます。その非公開アドオンがサイドローディング(一般的なWebからのインストールではなく、何らかのアプリケーションにバンドルされる形でのインストール方法)を必要とする場合、コード審査が必要となり、審査完了までには数週間を要するでしょう。
- AMOに公開されたアドオンはAMO経由でのみ更新できます。それ以外の外部の更新機能は許可されません。その一方で、非公開のアドオンの更新は自分で面倒を見る必要があります。
アドオンはあなたが望む限り、公開(Listed)から非公開(Unlisted)に変更することも、その逆もできます。公開から非公開に変更した場合には、現時点でユーザの環境にインストール済みのそのアドオンは自動的には非公開バージョンに切り替わらない(独自の更新情報を確認するようにはならない)という事を憶えておいて下さい。非公開から公開に切り替えるのはそれよりは簡単です。というのも、FirefoxはインストールマニフェストにupdateURLを含まないアドオンについては自動的にAMOに更新情報を問い合わせるからです。
非公開(Unlisted)アドオン
開発者向け許諾に同意した後、アドオンをAMOのサイト上に公開するかどうかを尋ねられます。公開しないという選択肢を選んでいる事を確かめて下さい。
次いで、アドオンがサイドローディング用かどうかを尋ねられます。サイドローディングとは、アドオンのXPIパッケージがユーザによって直接インストールされるのではなく、何らかのアプリケーションのインストーラに同梱されてインストールされることを言います。ウィルス対策ソフトウェアが連携用のアドオンを含むというような場合が、この例です。アドオンのXPIパッケージがWebから直接インストールされる、もしくはダウンロード後にユーザの手でインストールされる物である場合には、このオプションを選択する必要はありません。
都合上、サイドローディングが必要な非公開アドオンはAMOでは本審査対象のアドオンとして扱われ、そうでない物は事前審査対象のアドオンとして扱われます。これらの扱いは、アドオンの審査状態を見ることで判別できます。非公開のアドオンの本審査と事前審査の状態の違いは、サイドローディングが必要なアドオンかどうかという点以外の違いはありません。
アドオンが対応しているプラットフォームを選択肢、XPIパッケージをアップロードして下さい。ファイルは自動コード検証器によって検査され、検出された内容に応じていくつかの警告やエラーが表示されます。もしエラーが検出されず、サイドローディング用と選択していなかった場合には、アドオン用の詳細ページが作成され、ファイルはすぐに署名されます。その後、署名済みのファイルのダウンロード方法を説明するEメールを受け取るでしょう。アドオンが検証を通過しなかった場合、手動でのコード審査を依頼することができます。アドオンが我々のチームによってもう一度審査された後、審査を通過して署名された事を告げるメールか、審査を通過しなかった場合はその理由の説明を含んだメールを受け取るでしょう。
自動検証に失敗した場合でも、それはそのアドオンが危険だったり署名されるのに相応しくなかったりといった事を意味するわけではないことに注意して下さい。検証器の検証項目は多岐に渡り、擬陽性の判定が出ることがあります。これが、手動審査へのフォールバックが必要な理由です。それでも、検証器の出力を注意深く読んで、エラーや警告を避けるために別のAPIやコーディングパターンがないかを検討した方がよいでしょう。これは、検証を通過するためにコードを難読化しようということではありません。そのような試みは、アドオンの登録を拒否されたり、ブロックリストに登録されたりする可能性をもたらし得ます。
アドオンのすべての新しいバージョンも、同様に署名される必要があります。最初のバージョンを登録した後は、そのアドオンの開発者向けページから新バージョンを登録することができます。その後の流れは同じで、自動検証や、場合によっては手動のコード審査が行われます。
公開(Listed)アドオン
開発者向け許諾に同意した後、アドオンをAMOのサイト上で公開するかどうかを尋ねられます。「公開(Listing)」が既定の選択肢です。
アドオンが対応しているプラットフォームを選択し、XPIパッケージをアップロードして下さい。ファイルは自動コード検証器によって検査され、検出された内容に応じていくつかの警告やエラーが表示されます。エラーは、公開アドオンに対して、承認される前に直される必要があるエラーがパッケージに含まれている時にだけ表示されます。警告の場合、重要性や深刻度はまちまちです。 それらのすべてを注意深く読んで、それらの警告が出ないように修正できる所がないかを検討して下さい。これは、検証を通過するためにコードを難読化しようということではありません。そのような試みは、アドオンの登録を拒否されたり、ブロックリストに登録されたりする可能性をもたらし得ます。
公開アドオンの登録を完了した後は、審査待ちのリストに加えられ、最終的に、我々の審査チームのメンバーによって精査されます。アドオンの複雑さやその他の要因によって、この段階には数時間から数週間を要します。最初の登録時には全てのコードが審査される必要があるため、より長い時間がかかります。更新の場合は差分に基づいて審査されるため、より短時間で済みます。アドオンが審査を通過したら、ファイルは署名されAMOのサイト上に公開されます。
公開アドオンは事前審査または本審査用に登録され得ます。事前審査はセキュリティとアドオンのコードに焦点を当てた内容の確認から成ります。本審査はより高い基準でのもので、機能の検証や性能の確認に対する審査も含みます。本審査済みのアドオンはサイト上でより目に付きやすく、おすすめに推薦される場合もあります。本審査に推挙されたものの基準を満たさなかったアドオンは、代わりに事前審査の承認を得るでしょう。
ベータ版
ベータチャンネルは、本審査済みのアドオンに対してのみ利用できます。
ベータチャンネルを作るには、a、b、alpha、beta、pre、rcのいずれか(および、必要な場合は末尾の数字)を含んだ一意なバージョン番号を伴うファイルをアップロードします。この文字列はバージョン番号の末尾に付いていなくてはなりません。正規表現で表すと、バージョン番号用の検出ルールは以下の通りです: "(a|alpha|b|beta|pre|rc)\d*$"
.
この条件に合致するファイルがAMOにアップロードされると、自動的にベータ版として認識されます。これらの一意なバージョン番号を持つアドオンのユーザ向けには、最新の更新ベータ版として提供されるでしょう。
ベータ版は非公開バージョンのアドオンのように扱われ、自動検証を通過するだけですぐに受理され署名されます。自動検証を通過しなかった場合は、手動審査を申請するという選択肢もあります。
私達はこれらのバージョンを「ベータ版」と呼んでいますが、好みに応じて、夜間ビルド、アルファ版、またはプレリリース版などのために利用できます。ただし、この用途のためのチャンネルは1つだけしか無く、このチャンネルを使っているユーザは常に一番新しく投稿されたバージョンを受け取ると言うことに注意して下さい。具体的には、もし1.0beta1
をリリースチャンネルにアップロードして、さらに1.1alpha1
をアップロードした場合、1.0beta1の全ユーザが1.1alpha1へのアップグレード通知を受け取ります。更新情報はバージョン番号ではなく投稿日時に基づいて通知されますので、アルファベット順での並び順には関係なく、ユーザは常にそのチャンネルで最新の更新バージョンを受け取ることになるでしょう。
管理権
アドオンは、更新や公開情報の管理を行えるユーザを複数人持つことができます。アドオンの既存の作者は、開発者ツールでの詳細ページ上で、管理権を譲渡したり、追加の開発者を登録したりできます。管理権の譲渡に際しては、Mozillaの担当者が関わる必要は一切ありません。
コードに関する申し立て
多くのアドオンはソースコードを見ることを広く一般に許可しています。しかしこれは、ソースコードがオープンソースであったり、他のアドオンで利用可能であったりという事を意味しません。アドオンの元の作者は、アドオンのライセンスでの取り決めがある場合を除いて、アドオンの著作権を保持しています。
著作権侵害またはライセンス違反の通知を我々が受け取った場合には、DMCA(米国デジタルミレニアム著作権法)に則って、アドオンの公開を取り下げることを含む必要な措置を取ります。このプロセスや、商標やライセンスに関する問題の報告に関する詳細は、ここから見付けることができます。
アドオンのソースコードの現在の著作権の状態が分からない場合には、そのソースコードを使う前に、元の作者に問い合わせてきちんと許可を得る必要があります。