Firefox と Thunderbird は内部的なパーツをスタンドアローンファイルや omni.ja と呼ばれる単一の JAR ファイルに移動することによって、パフォーマンスの改善をしています。omni.ja はアプリケーションのロードに必要となる大量の I/O を軽減させています。この記事は、このアーカイブの内容と、その内容を調べるテクニックを説明します。
Note: Firefox 10 と Thunderbird 10 から、ファイルの拡張子で .ja を使うようになりました。 Windows のシステム復元で .jar 拡張子がバックアップされず、.ja 拡張子だとバックアップされるからです。この変更は Firefox の破損を防ぐために必要でした。
omni.ja の調査
omni.jar
ファイルの展開時に、一部のウイルス対策ソフトウェアが誤った警告を表示することがあります。いくつかの unzip ツールと (7-Zip を含む) アーカイブツールは、omni.ja
ファイルにデータの最適化が行われているため、今のところは、これを読むことができません。Windows 7 のユーザの場合は、ファイル名を omni.zip
に変更し、Windows エクスプローラーを使用してすべてのファイルを展開することができます。これより古い Windows のユーザは、InfoZip の UnZip ツールを使用してファイルを展開できます (omni.jar
のコピーを作成し、unzip.exe
にドラッグ&ドロップしてください)。Linux のユーザは unzip コマンドを使用して omni.ja の中身を取り出すことができます。
omni.ja は他の面でも Zip ファイルと互換性がありません。展開後のファイルを編集するだけでは Firefox に影響を与えませんが、正しい方法で圧縮されていないファイルは Firefox を破損させることがあります。正しいパッケージ方法は以下の通りです。
zip -qr9XD omni.ja *
omni.ja の内容
omni.ja
ファイルには、アプリケーションのリソースが分類され含まれています:
- chrome.manifest
- chrome manifest ファイル。
- /chrome/
- アプリケーションのユーザインタフェース関連のファイル
- /chrome/localized.manifest
- ローカライズされたコンテンツの Manifest ファイル。メインの chrome.manifest ファイルから参照されます。
- /chrome/nonlocalized.manifest
- ローカライズされないコンテンツの Manifest ファイル。メインの chrome.manifest ファイルから参照されます。
- /components/
- アプリケーションが依存する XPCOM コンポーネント。
- /defaults/
- デフォルトの設定ファイル。
- /modules
- JavaScript コードモジュール。
- /res/
- その他のリソースファイル。
See also
- Firefox 4 for developers
- Thunderbird 3.3 for developers
- Theme changes in Firefox 4
- Firefox 4: jar jar jar (ブログ投稿)
- Bug 701875 - Rename omni.jar to omni.ja