きりかノート 3冊め

おあそびプログラミング

SandTrip 1.0.1 リリース - Safari 3.1で正常に動作しないことがある問題に対応

WebKitなブラウザにローカルCGI機能を追加するSIMBLプラグインSandTripのバージョン 1.0.1をリリースしました。

  • SafariCGI出力結果が正常に表示されないことがある問題を修正

この対応の結果、Safari 3.xでの体感応答が遅くなったかもしれません。ていうか、きっと遅くなった。

Safariでの問題

Safari 3.1になってからだと思うけど、SandTripによるローカルCGIの出力結果がうまく表示されないことがある。データの一部だけが表示されていて、うしろが切れているように見える。とくに影舞の検索が重症。読書記録が調べらんないよ。

以下、試してみたこと。

  • iCab 4.1で実行->ok
  • SandTripのURI Schemeをデフォルトの"file"から"http"に変更してSafari 3.1で実行->ok
  • プログラムを変更し、全出力を読み込んでからブラウザに渡すようにしてSafari 3.1で実行-> ok

となった。つまり、

  • Safari 3.1で
  • URI Schemeがfileのとき
  • CGIの出力をバッファ読み込みの都度ブラウザに返す

とうまく動作しない、ということのようだ。NSURLProtocolClientの動作をスキームごとに制御してるんだろうな。まあ、fileスキームにNSHTTPURLResponse返すこっちが悪いっちゃそうなのかもしれないけどさ。

というわけで、Safari 3.x上で動作しているときはCGIの完了を待って、ぜんたいの出力を一括してブラウザに返すこと(0.9.7以前の動作)にした。でも体感でだいぶ遅いんだよな。2ちゃんねるブラウザrep2でのスレッド一覧表示や新着まとめ読みとか。