Manifest File

全ての拡張機能はマニフェストファイルと呼ばれる JSON フォーマットのファイルを manifest.json という名前で持つ必要がある。これには拡張機能についての重要な情報が記述される。

概要

サポートしているマニフェストのフィールドは、次の通り。このうち、必須なものは name と version のみである。

{
  // 必須
  "name": "My Extension",
  "version": "versionString",

  // 推奨
  "description": "A plain text description",
  "icons": { ... },
  "default_locale": "en",

  // いずれか1つを選択(もしくは何も使わない)
  "browser_action": {...},
  "page_action": {...},
  "theme": {...},

  // 必要に応じて設定
  "background_page": "aFile.html",
  "chrome_url_overrides": {...},
  "content_scripts": [...],
  "minimum_chrome_version": "x.y",
  "options_page": "aFile.html",
  "permissions": [...],
  "plugins": [...],
  "update_url": "http://path/to/updateInfo.xml"
}

フィールドの詳細

name

45文字以内の、プレーンテキストによる拡張機能の名前。この名前はインストールのダイアログ画面や拡張機能の管理画面、 で使われる。

version

拡張機能のバージョン。4つまでの、ドットで区切られた数値であらわす。各数値は 0 から 65535 まででなくてはならず、0以外の値はゼロで始まってはいけない。例えば 99999 や 032 は不正な値である。

有効なバージョン番号は、例えば次のようなものである。

自動更新システムは、インストールされているバージョンと最新版のバージョンを比較して、更新が必要かどうかを決める。最新版のバージョンがインストールされたものよりも新しければ、拡張機能は自動的に更新される。

バージョンの比較は、左端の数値から始められる。この数値が等しければ、ひとつずつ右の数値を比較していく。例えば 1.2.0 は 1.1.9.9999 よりも新しいと判定される。

省略されている数値はゼロと扱われる。そのため 1.1.9.9999 は 1.1 よりも新しいと判定される。

より詳細な情報は、自動更新参照。

description

拡張機能に関する説明を、132文字以内のプレーンテキスト(HTMLなどのフォーマットは使えない)で記述する。この説明書きは、ブラウザの拡張機能管理画面や で使われる。

icons

ひとつ以上の、拡張機能をあらわすアイコン。少なくとも、48ピクセル四方と128ピクセル四方の2種類は用意するべきである。48×48のアイコンは拡張機能の管理ページ(chrome://extensions)で使われる。また 128×128 のものは、ユーザが拡張機能をインストールする際に使われる。

アイコンは一般的には、透過機能に最も優れるPNGフォーマットを用いることが望ましい。ではあるが、WebKitがサポートしているフォーマットである BMP、GIF、ICO、JPEG なども利用することは可能だ。以下、アイコンの指定方法の例を挙げる。

"icons": { "48": "icon48.png",
          "128": "icon128.png" },

もし作成した拡張機能を に登録するのであれば、これらに加えて 32×32ピクセルのロゴと、1つ以上の拡張機能に関するスクリーンショットをアップロードする必要がある。ギャラリーに関するより詳細な情報は を参照。

default_locale

拡張機能のデフォルト・ロケールとなる _locales 下のサブディレクトリ名を指定する。このフィールドは、拡張機能が _locales ディレクトリを持っているならば 必須 となる。そして逆に、 _locales ディレクトリが無いならば 指定してはいけない 。詳しくは国際化を参照。

browser_action

ブラウザアクション参照。

page_action

ページアクション参照。

theme

テーマ参照。

background_page

バックグラウンド・ページ参照。

chrome_url_overrides

オーバーライド参照。

content_scripts

コンテント・スクリプト参照。

minimum_chrome_version

拡張機能が必要とするGoogle Chromeの最小バージョン番号。必要であれば記述する。書式は version フィールドと同様。

options_page

オプションページ参照。

permissions

拡張機能が必要とするパーミッションを配列で指定する。パーミッションには “tab” や “bookmark” のように予約語になっているものもあれば、アクセスするホストを示すマッチパターンもある。これらのパーミッションは、インストール前にユーザに確認される。パーミッションは、もしその拡張機能が攻撃を行った際に、被害を制限する役割がある。

APIがパーミッションを必要とする場合、各ドキュメントにその方法が書かれている。例えば タブ であれば、タブを操作するためのパーミッション指定方法がそこに記述されている。

以下は、パーミッション部分の一例である。

"permissions": [
  "tabs",
  "bookmarks",
  "http://www.blogger.com/",
  "http://*.google.com/"
],

より詳細な情報は、生成元横断XMLHttpRequest、ウインドウ、タブ、お気に入りなどを参照。

plugins

NPAPIプラグイン参照。

update_url

自動更新参照。