「View Page Source」したときに、gzipで圧縮されているファイル(Content-Encoding: gzip)を展開せずにテンポラリファイルとして書き出してる予感。なんかサイトによってはEmEditorで開けないと思ったら、これが原因ぽい。
とりあえず自分で何とかしてみて、解決したらコミットしようと思いつつ、ソースコードを追ってみた。extService.jsの1725行目あたりにviewSoruceOfというそれらしいクラスがあったのはいいのだけども(このメソッドがFirefox組み込みのメソッドをフックしてるらしい)、1746行目からの条件分岐がよく分からない。ていうか、argmentsってなんだ。JavaScriptは特定の文法以外は知らないのでよく分からない。たぶん引数かな。
で、自信はあまり無いけど、downloadAndOpenWithAppというメソッド(1565行目)を呼んでる雰囲気なので、今度はそっちを読んでみる。saveURIInBackgroundAsでダウンロードしているようだ。よく分からないけど、彼はgzipの解凍をしてくれないのかも知れない。
extCommonUtils.jpに移ってsaveURIInBackgroundAsを探してみると1013行目で発見。どうやら「nsWebBrowserPersist」というコンポーネントを使ってるらしい。ググってみたらリファレンスが出たので読んでみると、どうやらこれが親玉のようだ。が、「Content-Encoding」については特に書いてないし、saveURIメソッドについて調べてみても引数で設定できる訳でもなさそうだった。HTTPヘッダの追加はできるらしいが、それでは意味がない。特定のヘッダ(Accept-Encoding)だけ抑制できないかな。
ほかの拡張はどうしてるのかと調べてみるとSageはXMLHttpRequestのインスタンスを作ってなにやらごにょごにょしてるらしい。これをパクって移植してくれば行けるかな。でもなんか環境依存ぽい予感。
それにしても、他人の書いたコードを全く前知識無しで読むのは疲れる。JavaScriptの文法を理解し切れてないのもあると思うけど、辛い。
んー、配布元の掲示板で報告した方が良いのかな。
http://yudai.arielworks.com/memo/2005/01/08/210930.trackback
末尾に「0 + 7」の計算結果を繋げて下さい。例えば計算結果が「17」の場合、「210930.trackback17」です。これは機械的なトラックバックスパムを防止するための措置です。