0

すべての拡張機能をバージョン2にアップグレードしたいのですが、古いバージョンのChromeがまだインストールされているユーザーとの下位互換性を維持しています。

"manifest_version": 2現在、複数のマニフェストバージョンがサポートされていないため、サポートされるChromeの最低バージョンとそのプロパティを知りたいと思います。

4

1 に答える 1

1

マニフェストv2はChrome18で導入されまし。マニフェストバージョン2を使用すると、拡張機能にいくつかの要件が追加されます。最も重要なものは次のとおりです。

  1. 拡張機能のコンテキストでタグを介して外部JavaScriptファイルをロードすることを禁止し、文字列(インラインイベントリスナー、インラインスクリプトなど)を介して作成されるJavaScriptコードの実行を禁止するデフォルトのコンテンツセキュリティポリシー。 機能が壊れた結果、JSONPが発生します。および評価ベースのテンプレートエンジン。これらは、通常のクロスサイトAJAXとサンドボックスChrome21+をそれぞれ使用することで解決できます。<script>eval
  2. フィールドは空のweb_accessible_resourcesリストで開始されるため、すべてのリソースはデフォルトでブラックリストに登録されます。
  3. マニフェストエントリが使用できなくなります( +または)"background_page"に置き換えられます。"background""scripts""page"

マニフェスト2では、APIなどの一部のAPIを使用することもできchrome.storageます。マニフェストv2が省略されている場合、このメッセージは内線番号の下に表示されます。

最後のコメントを除いて、これらの要件はすべて、Chrome拡張機能のコーディングガイドラインを厳格にします(マニフェストv1と比較して)。

  1. CSPに準拠するコードは、マニフェストv1でも機能します。
  2. 拡張機能のすべてのソースはホワイトリストに登録されているため、通常のWebページにアクセスできます。
  3. "background": {"scripts": ["..."]}(および"page")は、Chrome 18で導入されたため、Chrome17以下とは下位互換性がありません。代わりに使用してください。"background_page": "background.html"

すべてのChromeバージョンの1つの拡張機能は、バックグラウンドページを使用していない場合にのみ使用できます。その他の場合、そのようなハイブリッド(マニフェストv1 + v2互換)拡張は実現できません。

2つの異なる拡張子を配布する場合"minimum_chrome_version": "18"は、マニフェストファイルで設定します。古いブラウザの拡張機能の場所を忘れないでください。

于 2012-09-21T08:17:22.610 に答える