Chrome Manifest

Chrome Manifestでは、ユーザーインターフェイス要素のセットを定義します。

記述方法

Chrome Manifestでは、UI要素のセットの基本情報を定義します。それは、

パッケージの種類 パッケージの名前 [付加情報] パッケージファイルの場所 [フラグ]

の書式に従い、

content sample chrome/content/

のように記述します。

パッケージファイルの場所は、Chrome Manifestファイルからの相対パスで示します。このときパスの最後には、スラッシュが必要です。

コメント (comments)

行頭を「#」とすることで、その行はコメントとみなされます。

マニフェスト命令 (Manifest instructions)

manifest

manifest subdirectory/foo.manifest [フラグ]

binary-component

binary-component components/mycomponent.dll [フラグ]

interfaces

interfaces component/mycomponent.xpt [フラグ]

component

component {00000000-0000-0000-0000-000000000000} components/mycomponent.js [フラグ]

component

contract @foobar/mycontract;1 {00000000-0000-0000-0000-000000000000} [フラグ]

category

category カテゴリ エントリ名 value [フラグ]

content

content パッケージ名 uri/to/files/ [フラグ]

locale (ロケール)

locale パッケージ名 ロケール名 uri/to/files/ [フラグ]

DTDファイルのパスを指定します。

skin (スキン)

skin パッケージ名 スキン名 uri/to/files/ [フラグ]

overlay (オーバーレイ)

overlay chrome://URI-to-be-overlaid chrome://overlay-URI [フラグ]

クロスパッケージ オーバーレイに用います。

style

style chrome://URI-to-style chrome://stylesheet-URI [フラグ]

chrome://URI-to-styleのペーに、chrome://stylesheet-URIのスタイルをオーバーレイして適用します。これはスタイルが適用されるファイルを編集できない場合の方法で、編集できるならばそのページでCSSを読み込みます。

たとえば「ブラウザ」にスタイルを適用するには、

style chrome://browser/content/browser.xul chrome://myPackage/skin/default.css

のようにします。

override

override chrome://package/type/original-uri.whatever new-resolved-URI [フラグ]

resource

resource エイリアス名 uri/to/files/ [フラグ]

マニフェスト フラグ (Manifest flags)

行の最後にフラグを記述することで、その設定に特別な意味を持たせたり、その設定が使用される条件を制限したりできます。

たとえばOSによって異なるスキンを適用するには、

skin sample classic/1.0 chrome/skin/unix/

# Windows
skin sample classic/1.0 chrome/skin/win/ os=WINNT
skin sample classic/1.0 chrome/skin/winaero/ os=WINNT osversion>=6

# Mac
skin sample classic/1.0 chrome/skin/mac/ os=Darwin

のようにします。

配置方法

ファイル名を「chrome.manifest」として、アドオンやテーマのルートに配置します。

Chrome URI

Manifestで登録されたパッケージは、Chrome URIと呼ばれるURIにマッピングされます。登録後のパッケージにアクセスするには、そのChrome URIを使用します。その書式は、

chrome://パッケージ名/データの種類/ファイルのパス

の構文で表されます。たとえばブラウザのウィンドウを表すURI

chrome://browser/content/browser.xul

を構成する要素は、次のように説明できます。

要素 意味 説明
chrome URIスキーマ Chrome URIであることを意味する
browser パッケージ名 UIコンポーネントを識別する名前
※ほかのアドオンとは異なる、唯一な名前とします。
content データの種類 リクエストするデータの種類
browser.xul ファイル名 ロードするファイルへのパス
Chrome URIの書式 - Building an Extension | MDN

Chrome URIが示すリソースは、Firefoxのロケーション バーに入力することで表示することができます。


ブラウザ リソースをブラウザで開いたところ

Chrome URIでアドオンのリソースにアクセスするには、そのアドオンがインストールされ有効化されている必要があります。

定義済みのChrome URI

あらかじめ定義されているChrome URIには、次のようなものがあります。

Chrome URI ウィンドウ
chrome://browser/content/browser.xul ブラウザ
chrome://browser/content/preferences/preferences.xul オプション
chrome://browser/content/preferences/sanitize.xul 履歴の消去設定
chrome://browser/content/sanitize.xul すべての履歴を消去
chrome://browser/content/bookmarks/bookmarksPanel.xul ブックマーク
chrome://browser/content/places/bookmarkProperties.xul ブックマークのプロパティ
chrome://browser/content/places/places.xul 履歴とブックマークの管理
chrome://browser/content/history/history-panel.xul 履歴
chrome://global/content/customizeToolbar.xul ツールバーのカスタマイズ
chrome://global/content/viewSource.xul ソース
chrome://global/content/viewPartialSource.xul ソース

Chrome URIでマッピングされている実体はomini.jaにありますので、このファイルを展開し.xulファイルを検索することで、これらのURIを調べられます。

その他
Chrome URI ウィンドウ
chrome://inspector/content/inspector.xul DOM Inspector
chrome://browser/content/devtools/webconsole.xul Webコンソール
chrome://browser/content/debugger.xul JavaScript デバッガ

Firefoxならば、これらのURIをロケーションバーに貼り付けて開くことで、その実体を確認できます。

JARパッケージング

JARパッケージングされたファイル内への参照は、jar: ... .jar!のように囲んで記述します。

UniversalXPConnect特権

Chrome Manifestで登録されたファイルは、UniversalXPConnect特権という特別な権限で実行されます。

Firefoxアドオンの情報サイトから、まとめて検索