この翻訳は不完全です。英語から この記事を翻訳 してください。

Firefox アドオンは、他の Firefox アドオンと区別するために使われるユニーク ID を持っています。

この記事は、アドオン ID が Web 拡張 API で作る拡張機能によってどのように処理されているか述べています。

Firefox アドオンには、Firefox内と addons.mozilla.org (AMO) ウェブサイト両方で使われるユニークな識別子があります。例えば、Firefox でインストールされたアドオンを更新確認したり、アドオンによって制御されているオブジェクト (データストアのようなもの) を識別したりするために使われています。

Firefox アドオンの古いタイプでは、アドオン開発者はアドオン ID を明示的にセットしなければなりません。XUL/XPCOM アドオンは install manifest で ID をセットし、SDK アドオンはpackage.json で ID をセットします。

しかし、Firefox 48 からすべて明示的に ID をセットしなくても、開発、デバッグ、公開そして拡張機能をアップデートすることができます。

ID を持たずにWeb 拡張を開発やデバッグできるようになったのはFirefox 48 が初めてであるということに注意してください。Firefox の前のバージョンを使う必要があれば、ID を明示的にセットするためにapplications キーを使わなければなりません.

アドオンIDなしの基本的なワークフロー

拡張機能は manifest.json の applications キーを使って明示的にアドオンIDをセットできます。しかし、このキーは通常オプションです。セットしなかった場合、IDを介さなくてもふつうに拡張機能を開発、デバッグ、公開、更新できます。ひとつのメリットは Google Chrome は applications キーを認識せず、入れていると警告を出します。

しかし、WebExtension API にはアドオン ID を使ってブラウザーセッションと同様に扱うものもあります。こうした API をFirefox で使う場合、applications キーで明示的に ID をセットしなれけばなりません。どんなときにアドオン ID が必要になる? を見てください。

開発及びデバッグ

Firefox 48 からは、manifest.json に ID が入っていない場合、about:debugging でFirefox にインストールした時、拡張機能にはランダムに生成される仮の ID を代入されます。「再読み込み」ボタンを使って拡張機能を読み込むと、同じ ID が使われます。Firefox を再起動してアドオンを読み苔と、新たしい ID になっています。

拡張機能を.xpi や .zip の形で about:addons からインストールしようとしても、機能しません。この場合、manifest.json に applications キーを追加する必要があります。

公開

Once you have finished developing the extension, you can package it and submit it to AMO for review and signing. If the packaged extension you upload does not contain an ID, AMO will generate one for you. It's only at this point that the add-on will be assigned a permanent ID, which will be embedded in the signed packaged extension.

Note that once an extension has been given a permanent ID, you can't then update it to use the Add-on SDK or legacy XUL/XPCOM techniques. If you do switch to one of these platforms, you must submit it as a distinct new add-on, with a new ID.

アップデート

Even after this point, though, you don't generally have to deal with the ID at all. You can continue to develop the add-on without an ID, and when you want to update, upload the new version by visiting the add-on's AMO page. Because you are uploading the add-on through that page, AMO knows that this is an update to this particular add-on, even though it doesn't contain an ID.

It's essential with this workflow that you update the add-on manually using its page on AMO, otherwise AMO will not understand that the submission is an update to an existing add-on, and will treat the update as a brand-new add-on.

You can do the same thing if you are updating from an older add-on type, such as a XUL/XPCOM add-on, to use WebExtensions APIs. Just visit the old add-on's page on AMO, upload the new extension there, and it will be treated as an update to the old version.

どんなときアドオンIDが必要になる?

 

 

 

ドキュメントのタグと貢献者

 このページの貢献者: Uemmra3, macitis, kntty
 最終更新者: Uemmra3,