X-0005 ドキュメントの ContentType を調べる

最近のバージョンの Mozilla では、 document.contentType を参照すれば簡単に ContentType を調べることができます。例えば Moz で現在開いているドキュメントなら getBrowser().contentDocument.contentType です。

ただし、 NS6.x まででは document.contentType がありません。 nsIAccessibleDocument インターフェースの mimeType プロパティがそれに相当するので、以下のようにしておけば、 NS6.2.2 以前と最新の Mozilla で共通して ContentType を得ることができます。

function getContentType(doc) {
    if (doc.contentType) return doc.contentType;

    const accServiceID = '@mozilla.org/accessibilityService;1';
    const accServiceIF = Components.interfaces.nsIAccessibilityService;
    const accService = Components.classes[accServiceID].getService(accServiceIF);
    var   acc = accService.getAccessibleFor(doc);
    return acc.QueryInterface(Components.interfaces.nsIAccessibleDocument).mimeType;
}