2007/12/30

.xulファイルをFirefoxで開く

HTML Applicationは、拡張子を.htaに変えるだけでいいのに、XUL Applicationは-chrome付けてFirefox起動したりでメンドウだ。というのを見かけた(Firefoxの-chromeオプション/Firefox・XUL使いへの道へ - A Better Project@はてなダイアリー)ので、Windowsで.xulを叩くとFirefoxを-chrome付きで呼び出すレジストリ更新ファイルを作ってみました。

既に何かしらのアプリで.xulファイルへの関連付けをしていると上書きしてしまうので要注意です。

Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.xul] "PerceivedType"="application" @="xulfile" "Content Type"="application/vnd.mozilla.xul+xml" [HKEY_CLASSES_ROOT\xulfile] [HKEY_CLASSES_ROOT\xulfile\shell] [HKEY_CLASSES_ROOT\xulfile\shell\open] @="open(&O)" [HKEY_CLASSES_ROOT\xulfile\shell\open\command] @="\"C:\\Program Files\\Mozilla Firefox\\firefox.exe\" -chrome \"%1\""
ローカルファイルだと、file:///形式でURLを指定しないと起動できない。これはIEが拡張子をHTAにするだけで良いのに比べて、遥かに面倒。

という記述があったので、パスをfile://形式のURIに変換するJScriptを作ってそっち経由で呼び出そうとしたのですが、JScript経由でFirefoxを呼び出す関連付けの方に数時間悩みました。しかも解決直後になにげなくJScript経由せずに"C:\..."形式で渡したら問題なく起動する始末。よく見たら1年以上前のエントリーなのでFirefoxのバージョンアップで解決したんでしょうか。

それ以前の問題として、自宅の環境では-chromeオプションを付けているのに本体が起動してしまいます。-safe-mode付けると本体は起動しなくなるので、なんか拡張が悪さしているのかもしれませんが、こちらを調べる方がメンドウ過ぎてやる気がしませんね。拡張を順に一つずつ切って起動するテストツールとかの方が実用性ありそうです。