基本的なファイル構成
*.xpi
├ install.rdf
├ chrome.manifest
├ content
│ └*.xul / *.js
├ locale [[ローカライズ]]が必要な場合
│ ├ en-US
│ │ └ *.dtd / *.properties
│ └ ja
│ └ *.dtd / *.properties
├ skin スキンが必要な場合
│ └*.css / *.png
├ components 独自XPCOMを作る場合
│ └ *.*
├ modules 独自jsmを作る場合
│ └ *.jsm / *.js
├ defaults 設定を保存する場合は大抵用意する。固定
│ └preferences
│ └*.js
└ chrome windowに独自アイコンを使う場合。固定
└ icons
└ default
└ *.ico / *.xpm
- 今主流の(?)フォルダ構成。
- 上で「固定」と書かれてるもの以外は結局はchrome.manifestでの指定次第なので、自分の好きなようにしていい。
- 以前(xpiを解凍してインストールしてた時)は content, locale, skin を jar に固めてchromeに置いてたけど、今は必要ない。
- ただし今でもxpiを解凍するタイプの拡張は jar で固めるべき。
- 独自アイコンのやつはxpiを解凍しないと機能しない?ので今ではほとんど見かけない。
xpi や jar 圧縮
- zip です。
- xpi は level 1 の zip 圧縮で。
- jar は 無圧縮 zip で。
- テスト環境では圧縮する必要はない。Building an Extension の中頃(「テスト」の項目)に書かれている通り、フォルダパスを書いたテキストファイル(注:ファイル名をIDにして、拡張子は無し)をプロファイルの extentions フォルダに置いておけば Firefox は読み込んでくれる。
- extentions フォルダに直接作ってもいーけどね。
install.rdf
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>SampleExtention@yourdomain.co.jp</em:id>
<em:name>Sample Extention</em:name>
<em:version>1.0</em:version>
<em:type>2</em:type>
<em:creator>Your Name</em:creator>
<em:description>A test extension</em:description>
<em:homepageURL>http://www.yourdomain.co.jp/</em:homepageURL>
<em:optionsURL>chrome://sample/content/options.xul</em:optionsURL>
<em:targetApplication>
<Description><!-- Firefox -->
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>2.0</em:minVersion>
<em:maxVersion>3.*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>
chrome.manifest
content sample content/
#content sample jar:chrome/sample.jar!/content/
resource sample-modules modules/
overlay chrome://browser/content/browser.xul chrome://sample/content/overlay.xul
locale sample en-US locale/en-US/
locale sample ja locale/ja/
skin sample classic/1.0 skin/
- 先頭に#でコメント行
- sampleがパッケージ名。他の拡張とかぶるとヤバイので注意。
最終更新:2014年01月25日 17:30