「拡張機能の基本」の編集履歴(バックアップ)一覧はこちら
「拡張機能の基本」(2014/01/25 (土) 17:30:48) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
#contents()
-[[Building an Extension | MDN>https://developer.mozilla.org/ja/docs/Building_an_Extension]]
-[[Performance best practices in extensions - Extensions | MDN>https://developer.mozilla.org/en-US/docs/Extensions/Performance_best_practices_in_extensions]]
*基本的なファイル構成
*.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>https://developer.mozilla.org/ja/docs/Building_an_Extension#.E3.83.86.E3.82.B9.E3.83.88]] の中頃(「テスト」の項目)に書かれている通り、フォルダパスを書いたテキストファイル(注:ファイル名をIDにして、拡張子は無し)をプロファイルの extentions フォルダに置いておけば Firefox は読み込んでくれる。
-extentions フォルダに直接作ってもいーけどね。
*install.rdf
#highlight(xml){
<?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>}
-name や description などはローカライズ可能。
-[[Install Manifests | MDN>https://developer.mozilla.org/ja/docs/Install_Manifests]]
*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がパッケージ名。他の拡張とかぶるとヤバイので注意。
#contents()
-[[Building an Extension | MDN>https://developer.mozilla.org/ja/docs/Building_an_Extension]]
-[[Performance best practices in extensions - Extensions | MDN>https://developer.mozilla.org/en-US/docs/Extensions/Performance_best_practices_in_extensions]]
*基本的なファイル構成
*.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>https://developer.mozilla.org/ja/docs/Building_an_Extension#.E3.83.86.E3.82.B9.E3.83.88]] の中頃(「テスト」の項目)に書かれている通り、フォルダパスを書いたテキストファイル(注:ファイル名をIDにして、拡張子は無し)をプロファイルの extentions フォルダに置いておけば Firefox は読み込んでくれる。
-extentions フォルダに直接作ってもいーけどね。
*install.rdf
#highlight(xml){
<?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>}
-name や description などはローカライズ可能。
-[[Install Manifests | MDN>https://developer.mozilla.org/ja/docs/Install_Manifests]]
*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がパッケージ名。他の拡張とかぶるとヤバイので注意。