XUL/XPCOM や Add-on SDK を使った Firefox 拡張機能を開発している場合、このページは拡張機能を WebExtensions API を使ったものに移植するのに役立ちます。Firefox 用の拡張機能を作成する標準は WebExtensions APIs を使うものです。これは Firefox で 2017 年11月末までの Firefox 57 リリースにてサポートされる唯一の拡張機能の種類です。

すばやく始める

  1. 拡張機能において変える必要のある主なものを理解するには:
  2. 拡張機能のコードを書き直します。下記の拡張機能のいろいろな種類の移行の道筋を見ます。Firefox 51 以降では、WebExtension APIs を使った拡張機能は bootstrapped extension や SDK add-on に組み込むことができて、それゆえにレガシー拡張機能の部分を一度に移植できて、それぞれのステップで拡張機能を動作させることができます。もっと詳しい情報は Embedded WebExtensions を見てください。
  3. WebExtension 版の拡張機能を AMO に投稿する準備ができても... ちょっと待って... 本当に準備できていますか? 拡張機能のパーミッションモデルのため、 WebExtensions をレガシー拡張機能フォーマットに戻すことはできません。なので一通りテストしてください、なぜなら永久的な片道旅行ですから。また、下記のハイブリッドの例も見ておいてください。準備できていない場合、レガシー拡張機能のコンテナの中に WebExtension を組み込んでおき、そうすると拡張機能の移植をテストできるけども緊急の場合は必要に応じて戻ることができます。
  4. 本当に WebExtension 版の拡張機能を AMO に投稿する準備ができた場合、まずは古い add-on ID を新しい WebExtension manifest.json ファイルに移します。拡張機能は前のバージョンと同じ ID を持たないといけません。package.json ファイルの中の "id" フィールドの値をコピーして、WebExtension の manifest.json ファイルの中の applications 部の id フィールドに移します。そして AMO に通常通り拡張機能の更新を投稿します。

これが一方通行の変換であるのに注意してください: WebExtensions を使った拡張機能からレガシーテクノロジーに更新できません。つまり AMO に更新したアドオンょ投稿する前に、WebExtension APIs の使用にコミットする準備ができたのを確認済みでなければならないことを意味します。

移行の道筋


SDK Extensions

ここに SDK APIs と WebExtensions フォーマットの同等品を示す比較チャートがあります。WebExtensions API を使った移植に必要な API が見つからない場合、下記を見て API をリクエストしてそれを実装する方法を見てください。

XUL/XPCOM Extensions

ここに XUL/XPCOM APIs と WebExtensions フォーマットの同等品を示す比較チャートがあります。WebExtensions API を使った移植に必要な API が見つからない場合、下記を見て API をリクエストしてそれを実装する方法を見てください。

Partial migration

Embedded WebExtension は 2種類の拡張機能が 1 つに結合された拡張機能で、その方法は bootstrapped 拡張機能や SDK 拡張機能の中に合体させます。ファイルシステムにデータを書き込むレガシー拡張機能があって、WebExtensions に移植したい場合、Embedded WebExtensions が-翻訳の助けになります。Embedded WebExtensions は保存データを WebExtension が利用できるフォーマットに変換します。これユーザーが対策を取ることなく、転換させるのに重要です。

Embedded WebExtensions は変換ツールとして考えられ、Firefox 57 を超えるとサポートされないことは強調しておきます。WebExtensions に変換するつもりでないアドオンには使ってはなりません。

必要な WebExtensions APIs が見当たりませんか?

Firefox用の WebExtension API を開発してください - Mozilla のインフラの経験があって直接 Firefox用の WebExtension API を開発したい場合、ここに貢献を開始できる認定済み API 一覧があります。

新しい WebExtension API を実験してください - WebExtension API を Firefox をビルドすることなくプロトタイプしていじくり回したい場合、WebExtensions Experiments がぴったりです!

新しい WebExtensions API をリクエストしてください - 新しい WebExtensions API をリクエストしたい場合、このページを見てください。

ツール

  • web-ext は拡張機能の開発プロセスをスピードアップするためのコマンドラインツールで、開発をよりすばやく簡単にします。
  • WebExtensions Helper はブラウザー拡張機能の開発を、WebExtensions ベース (Firefox, Chrome, Opera, Edge) の拡張機能向けユーティリティを提供することでスピードアップします。
  • Chrome Extension generator は拡張機能開発を始めるために必要なすべてを生成します。ブラウザー UI(ブラウザー、ページアクション、Omnibox) の種類と必要なパーミッションを選択できます。
  • Extensionizr は基本的な拡張機能を作るのに役立つウィザードです。
  • Chrome Boilerplate は Chrome WebExtension 用のコードのボイラープレートです。
  • Skeleton Chrome Extension は拡張機能のブートストラップとテンプレートです。

文書

連絡先

  • 助けを得るにはここのリンクを使って、アドオン周りのニュースを追って、フィードバックをください。

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

タグ: 
このページの貢献者: Uemmra3
最終更新者: Uemmra3,