X-0010 ディレクトリのパスを得る

内部名を参照すると、現在のプロファイルのディレクトリや prefs.js などのパスを簡単に取得することができます。

const DIR = Components.classes['@mozilla.org/file/directory_service;1'].getService(Components.interfaces.nsIProperties);
var fileOrDir = DIR.get('内部名', Components.interfaces.nsIFile);

// 'file:///c:/windows/...' の形式
try {
    const ioService = Components.classes['@mozilla.org/network/io-service;1'].getService(Components.interfaces.nsIIOService);
    var URL =ioService.getURLSpecFromFile(tempLocalFile);
} catch(e) { // NS6 ではこちらの方法
    var URL  = fileOrDir.URL;
}

// 'C:\windows\...' の形式
var path = fileOrDir.QueryInterface(Components.interfaces.nsILocalFile).path;

内部名には以下のものが使えるようです。バージョンによっては使えないものがあるかもしれません。

名前得られるパス具体例
システム関係
CurProcDMozilla がインストールされたディレクトリC:\Program Files\Mozilla\bin\ など
APlugnsプラグインのディレクトリ%MozDir%/plugins/
AChromchrome ディレクトリ%MozDir%/chrome/
AResres ディレクトリ%MozDir%/res/
DefRtデフォルトの設定のルート%MozDir%/defaults/
ProfDefNoLocデフォルトのプロファイルのディレクトリ%MozDir%/defaults/profile/
profDefデフォルトのプロファイルのディレクトリ(言語別)%MozDir%/defaults/profile/US/
PrfDefデフォルトの設定のディレクトリ%MozDir%/defaults/pref/
AppDataMozilla のユーザー設定が保存されるディレクトリC:\Windows\Application Data\ など
AppRegFregistory.dat の位置%AppData%/Mozilla/registry.dat
AppRegDregistory.dat のあるディレクトリ%AppData%/Mozilla/
DefProfRtプロファイル全体のディレクトリ%AppData%/Mozilla/Profiles/
ProfD現在のプロファイルのディレクトリ%AppData%/Mozilla/Profiles/profilename/xxxxxxxx.slt/
WinDWindows/Winnt ディレクトリ( Windows 環境のみ)%WinDir%/
TmpDテンポラリファイル用のディレクトリ%temp%/
HomeホームディレクトリWindows の場合、「デスクトップ」ディレクトリ
プロファイル関係
UChrmプロファイル下の chrome ディレクトリ%ProfD%/chrome/
MailDプロファイル下の mail ディレクトリ%ProfD%/Mail
NewsDプロファイル下の news ディレクトリ%ProfD%/News
IMapMDプロファイル下の ImapMail ディレクトリ%ProfD%/ImapMail
PrefFprefs.js%ProfD%/prefs.js
LclStlocalstore.rdf%ProfD%/localstore.rdf
BMarksブックマーク%ProfD%/bookmarks.html
UHist履歴%ProfD%/history.dat
UMimTyp関連づけの設定%ProfD%/mimeTypes.rdf
SrchF検索の設定%ProfD%/search.rdf
UPnlsサイドバーのパネル設定%ProfD%/panels.rdf
MFCaD%ProfD%/panacea.dat