メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2008年3月31日月曜日

[mod_chxj] 0.10.0へ向けて

追加機能は以下のとおり。

  • クッキーシミュレータの"Experimental"を削除するために、path属性、domain属性、expires属性、secure属性をチェックするようにした。
  • クッキーシミュレータのOne-Time IDの機能を使わないモードCookieLazyModeを追加。
  • application/xhtml+xmlなContent-Typeも処理対象に。
  • apr_pstrcatが遅いんで、いったんバッファリングするようにした。

CookieLazyModeは、ブラウザの戻るボタンで戻った際、クッキーIDが前のリクエストの値に
なっているんで困ったことになる場合の対策。


バグ修正も。
  • コメントタグ中のタグに反応してしまうバグを修正
  • スクリプトタグ中のタグに反応してしまうバグを修正
な感じ。
将来的にはexpatあたりに置き換えたいなぁーなんて思うのだけど、どうしようか。。

--
残作業
  • CentOS4.6 x86_64 コンパイルチェック【済】
  • CentOS5.1【済】
  • Fedora-8【済】
  • Debian sarge【済】
  • Debian etch【済】
--
リリース完了。

24 コメント:

bayside さんのコメント...

早速 0.10.0 をダウンロードして試してみました。しかし・・・以下のような設定にしても PC -> 携帯 の変換が効かないようです・・・。

ChxjConvertRule "\/.+$" "EngineOn,CookieOn" "EUC-JP" "PC"

0.9.0 では動いていたので何かの理由で変換が無効になっていると思うのですが、いかがでしょう?

konn さんのコメント...

> 0.9.0 では動いていたので何かの理由で変換が無効になっていると思うのですが、いかがでしょう?

失礼しました!
すぐに確認します。

konn さんのコメント...

確認しました・・・。

ご報告ありがとうございます。
早急に対応します。

>何かの理由で変換が無効になっていると思うのですが、いかがでしょう?

おっしゃるとおり、判定回数を減らしたのが原因ぽいです。。

konn さんのコメント...

対応し、0.10.1としてアップしました。

大変恥ずかしいバグで、すみません。。

bayside さんのコメント...

早速の対応ありがとうございました!!

ついでに質問がもうひとつあります。
サイト内でリダイレクトを行うとき、referer の URL からクッキーIDが消えていますが、これのせいでクッキーが消滅することは考えられますか?

「ログインページでログイン→ログイン後のページへリダイレクト→ページ内のリンクをクリック→セッションが切れてしまいログインページに戻る」という現象が発生しています。対応いただけると非常に嬉しいです。

konn さんのコメント...

>ついでに質問がもうひとつあります。
>サイト内でリダイレクトを行うとき、referer の URL からクッキーIDが消えていますが、これのせいでクッキーが消滅することは考えられますか?

恐らくクッキーIDが無いため、クッキーを引けなくなっているものと思われます。

それよりも、リダイレクト時にクッキーIDをつけてないのが問題かと思います。

・・即対応します!

konn さんのコメント...

クッキーのリダイレクトバグ対応版(v0.10.2)をアップしました。

遅くなってすみません。。

アール さんのコメント...

以前は64bit対応ありがとうございました。

しばらく使ってみているのですが、一つ気になったことが。
対応タグにmarqueeやfont size="x"が無いのはあえてなのでしょうか?

もし可能なら次バージョンで検討いただけるとありがたいです。


#って、要望はここに書いちゃっていいんですかね?

konn さんのコメント...

ありがとうございます!

>対応タグにmarqueeやfont size="x"が無いのはあえてなのでしょうか?

あえてといいますか、こちらで使う際、とりたてて必要なかったからです。
fontタグについては一応動くはずです。対応している機種については
出力されると思います。
ひととおりチェック後正式に対応タグに入れますね。

>もし可能なら次バージョンで検討いただけるとありがたいです。

喜んで対応します。

>#って、要望はここに書いちゃっていいんですかね?

どこにでも可です。いつでも歓迎ですよ!

アール さんのコメント...

>fontタグについては一応動くはずです。対応している機種については出力されると思います。

P905iで試しているのですが、
<font size="-2">

<font>
になってしまいます。


>喜んで対応します。

いろいろ注文ばかりですみませんが、よろしくお願いします。

konn さんのコメント...

>P905iで試しているのですが、
><font size="-2">
>が
><font>
>になってしまいます。

あれれ??

失礼しました!

DoCoMoの場合だと、CHTML3.0以上が使える機種は全てCHTML3.0の機種として
出力しますので、size属性は消してます・・。

size属性が使えるのは・・・CHTML5.0ぐらいからですかね。。

とりあえず、CHTML4.0から着手していきます。。

konn さんのコメント...

>いろいろ注文ばかりですみませんが、よろしくお願いします。

いえ、以外かもしれませんが、非常に嬉しいものなので、歓迎でございます!

konn さんのコメント...

>以外かもしれませんが

「意外かもしれませんが、」

です・・・。

さいと~ さんのコメント...

要望とかじゃないんですが・・・・・
こーゆーのを探していましたので
すごく助かりましたm(_ _)m

感謝しております。

konn さんのコメント...

>すごく助かりましたm(_ _)m
>感謝しております。

使っていただいて光栄です!
こちらこそ、ありがとうございます!

アール さんのコメント...

>DoCoMoの場合だと、CHTML3.0以上が使える機種は全てCHTML3.0の機種として
>出力しますので、size属性は消してます・・。

>size属性が使えるのは・・・CHTML5.0ぐらいからですかね。。

公式見てきましたが、5.0からですね。
90xのFOMA端末はCHTML5.0以上ですので、このあたりまで対応できたらかなり鬼に金棒的な感じだと思っております。

6以上は、テーブル以外は正直どうでも良さそうな属性ばかりなので、無理して対応しなくても良さそうですが(笑

ちなみにHxタグは通過しています。
なので、現状はh5とか使って文字サイズを小さくできるのですが、それよりはsize属性の方がより適切な指定かな、と思っております。

konn さんのコメント...

>公式見てきましたが、5.0からですね。

おおっ!


>90xのFOMA端末はCHTML5.0以上ですので、このあたりまで対応できたらかなり鬼に金棒的な感じだと思っております。

了解でございます。
とりあえず5.0を目標に、ですね!

bayside さんのコメント...

最新版でもクッキーエミュレートがやはりうまくいかないです・・。
リダイレクト時に以下のようなヘッダが吐かれるのですが、「Content-Type: text/x-perl」だと正常に動作しなかったりしますか?

====
HTTP/1.x 302 Found

Date: Thu, 10 Apr 2008 08:01:53 GMT

Server: Apache/2.2.4 (Ubuntu) mod_chxj/0.10.2-1 mod_fastcgi/2.4.2 PHP/5.2.3-1ubuntu6.3

Set-Cookie: xxxx_session=ac1f46ead7fa61673c48500e8d8f2c6791ab5fb3; path=/; expires=Thu, 10-Apr-2008 10:01:53 GMT

X-Catalyst: 5.65

Location: /account/login

Keep-Alive: timeout=15, max=100

Connection: Keep-Alive

Transfer-Encoding: chunked

Content-Type: text/x-perl

====

konn さんのコメント...

>リダイレクト時に以下のようなヘッダが吐かれるのですが、「Content-Type: text/x-perl」だと正常に動作しなかったりしますか?

見落としてました。。
text/htmlかtext/xhtml+xmlでないと動作しないかと思います。

LocationヘッダについてはContent-Typeを見ないようにしますね・・・。

すみません・・・。

konn さんのコメント...

すみません。。
対応したものを0.10.3としてアップしました。

よろしくお願いします。

bayside さんのコメント...

0.10.3 でだいぶいい感じに動くようになってきました。対応ありがとうございました!

さて、PC -> 携帯 の変換で、<table> の入れ子等には対応していますか?おそらくその辺りでパースエラーが出ます。

それと、おそらくパースエラーが出るとクッキーIDの保存に失敗しているのか、セッションが飛んでしまいます。

対応することは可能でしょうか?よろしくお願いいたします。

konn さんのコメント...

>0.10.3 でだいぶいい感じに動くようになってきました。対応ありがとうございました!

いえ、こちらの方こそ、ありがとうございます!


>さて、PC -> 携帯 の変換で、<table> の入れ子等には対応していますか?

うーむ。
対応しているはずです・・。

>それと、おそらくパースエラーが出るとクッキーIDの保存に失敗しているのか、セッションが飛んでしまいます。
>対応することは可能でしょうか?よろしくお願いいたします。

すみません・・・。
早速調べてみます。


ちなみに、
日記拝見しました。
ありがとうございます!!

konn さんのコメント...

いろいろとやってみました。
が、再現できませんでした・・・。

やってみたソースは以下な感じです。
<table>
<tr>
<td>あああ</td>
<td>いいい</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>あああ</td>
<td>
いいいい
<form action="1.php" method="post">
<input type="hidden" name="abc" value="hoge">
<input type="submit" value="テーブル内form">
</td>
<a href="1.php">これはどうかな</a>
</form>
</tr>
</table>
</td>
<td>
ああああ
</td>
</tr>
</table>

差し支え無ければ似たようなソースをいただきたいのですが、・・・無理ですよね?

すみません。。

konn さんのコメント...

とりあえず、未対応タグがきちんと無視できていなかったバグと、<style />のように自分自身で閉じるタグに対応したものを0.10.4としてupしました。

これでも、クッキーが破棄されてしまいますでしょうか・・・?