OSTRACISM CO.

ICExtensionMappingについて


 Firefox等Mozilla系ブラウザで拡張子.dmgのディスクイメージ書類をダウンロードすると、しばしばHexEditの書類(あるいは白紙アイコン)になります。これにはきちんと理由があります。

 インターネットの流行の初期の頃、Macintoshにおいてメーラやブラウザ等が独立してインターネット関連の設定を保持していました。それでは使い勝手が悪いため、共通の設定を参照する仕組みを用意しようということになり、有志によりInternetConfigが開発されました。
 その後、InternetConfigはApple純正のシステムとしてOSに組み込まれ、Mac OS 9まではインターネット関連の設定を管理する部品としてきちんと機能していました。
 Mac OS XになりInternetConfigはメンテナンスモードになりましたが、システムからなくなったわけではなく、きちんとCarbon化されており、現在でも有効に機能します。

 InternetConfigにはダウンロードしたファイルの拡張子とクリエータ・ファイルタイプの関連を管理する機能があります。
 元々フロッピー等リムーバブルディスクでDOS(Windows)とのやり取りをするApple File Exchangeという(Font/DA Moverに似た使い勝手の悪い)プログラムがありましたが、DOSフォーマットのディスクをマウントしてFinderで直接扱えるPC File Exchangeになった際に、ファイルの拡張子とクリエータ・ファイルタイプを管理するようになりました。
 その後PC File ExchangeとInternetConfigの同様の機能が統合され、最終的にFile Exchangeという機能になっています。

 Mac OS XにおいてInternetConfigの設定を変更する手段は用意されていません。拡張子関連はかろうじてInternetExplorerで設定が可能でしたが、Mac OS X 10.4にはもはやInternetExplorerは付属しなくなりました。
 とはいえ、Mac OS X初期の思惑とは裏腹に、Appleはいまだクリエータの登録を行っていたり、どうもクリエータ・ファイルタイプを放棄する意思は感じられません。システム的にクリエータ・ファイルタイプをいまだ尊重するようになっています。もしかしたら拡張子だけでは実際のシステムの運用に支障があると思い直したのかもしれません。

 ICExtensionMapping.appはInternetConfigの仕組みを使い、ファイルの拡張子とクリエータ・ファイルタイプを結びつける設定を行います。他のInternetConfigの設定は関知しません。またシステムそのものが保持する、拡張子とアプリケーションの関連もいっさい関知しません。
 ICExtensionMapping.appで行った設定はあくまでInternetConfigを利用しているアプリケーションにのみ有効です。かつてはクラリスメール等がInternetConfigを使っていましたが、現在のAppleのプロダクトにはInternetConfigを利用したアプリケーションはないと考えられます。

 さて、Firefoxです。FirefoxのMac OS X版はダウンロードしたファイルの拡張子とクリエータ・ファイルタイプを結びつけるのにInternetConfigを使っています。InternetConfigのデフォルトの設定に.dmgのエントリはないので、MIMEタイプの合致するapplication/octet-streamのエントリを使ってクリエータ・ファイルタイプを決めているようです。
 MIMEタイプがapplication/octet-streamのエントリはクリエータ'hDmp'のファイルタイプ'BINA'となっており、これはHexEditのファイルです。

 具体的にはMIMEタイプがapplication/octet-streamのエントリ(デフォルトで2つあり、どちらもHexEditになっている)のクリエータ・ファイルタイプをクリエータ'????'、ファイルタイプ'????'にすることで有意なクリエータ・ファイルタイプにしないように設定します。これで.dmg等の、拡張子がインターネットにおいて一般的といえないバイナリファイルがHexEditのファイルにならなくなります。
 '????'はバイナリ値0と等値と決められており、拡張子のみでアイコンが決まります。
(参考文献 TN2017 http://developer.apple.com/ja/technotes/tn2017.html)

 もちろん.dmgをクリエータ'ddsk'、ファイルタイプ'dimg'に設定することで.dmgそのものを設定してしまうという方法も有効です(アプリケーションは/System/Library/CoreServices/DiskImageMounter.app)。こうすることで、ダウンロード後拡張子を変えてもアイコンは維持されるようになります。
 あと、Firefox側でmimeTypes.rdfを編集してapplication/binaryの設定を加えるという方法もありますが、GUIが用意されていないのが残念なところです。

2005.08.17
「ダウンページ」へ戻る
OSTRA / Takeshi Yoneki