XMLHttpRequestの文字化けにoverrideMimeType

XMLHttpRequestshift_jisなどからshift_jisのstaticなテキストを読もうとしたときに文字化けすることがある。

var n = new XMLHttpRequest();
n.open("/sjis.txt");
 :

Content-Typeのcharsetがちゃんとしてなかったりする場合だ。で、MozillaのXMLHttpRequestにはoverrideMimeTypeというものがあって

var n = new XMLHttpRequest();
n.overrideMimeType("text/plain; charset=shift_jis");
n.open("/sjis.txt");
 :

などとすると文字化けせずに取り出せるようだ。IEにはそのメソッドはないようだ。

GreaseMonkeyに適用する

0.5.3だと「Mozillaのプロファイルのフォルダ/Greasemonkeyのエクステンション/chrome/greasemonkey/content/xmlhttprequester.js」の100行目あたりの

  if (details.headers) {
    for (var prop in details.headers) {
      req.setRequestHeader(prop, details.headers[prop]);
    }
  }

  req.send(details.data);

  if (details.headers) {
    for (var prop in details.headers) {
      req.setRequestHeader(prop, details.headers[prop]);
    }
  }

  if( details.overrideMimeType ){
    req.overrideMimeType( details.overrideMimeType );
  }

  req.send(details.data);

とでもしてやれば、userscriptで

GM_xmlhttpRequest({
    method: 'GET',
    url: 'http://example.com/1125306048.dat',
    overrideMimeType:"text/plain; charset=Shift_JIS",
    onload: function(responseDetails) {
		  :
    }
});

という感じで文字化けにも対応できる!

のだけれど、英語の問題で、その修正をどうやってGreasemonkeyの開発者に伝えればいいのかわからないので誰か代わりにお願いします…