MDN wants to learn about developers like you: https://qsurvey.mozilla.com/s3/MDN-survey

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

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 is a command line tool designed to speed up various parts of the extension development process, making development faster and easier.
  • WebExtensions Helper speeds up browser extension development by providing utilities for WebExtensions-based (Firefox, Chrome, Opera and Edge) extensions
  • Chrome Extension generator creates everything you need to get started with extension development. You can choose Browser UI(Browser,Page Action, Omnibox) type and select permissions you need.
  • Extensionizr is a wizard that helps you create a basic extension
  • Chrome Boilerplate is boilerplate code for Chrome WebExtension.
  • Skeleton Chrome Extension is an extension bootstrap and template

文書

連絡先

  • You can use the links here to get help, keep up to date with news around add-ons, and give us feedback.

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

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