2008-12-10

moodleにJava appletを置こうとしてFirefoxのバグにはまる

moodleのコース内にちょっとしたJava appletを置くことにした。ウェブページリソースを作り、appletのためのタグの書きかたをすっかり忘れたので他のサンプルをみようみまねで挿入し、目的のjarファイルをアップロードして表示させてみると、指定したエリアだけ確保するもののappletがスタートしない。

FreeBSDのFirefox 2では動く。WindowsのFirefox 3では動かない、IE7では動く。Javaのコントロールパネルからキャッシュを明示的に消さないと、IE7で動いてしまった後はFirefox 3でも動いてしまって、途中大混乱したが、Google Chromeでも動く、Safariでも動く、ともかくFirefox 3で動かない。

apacheのログによると、303、つまりSee otherで、ログインページに飛んでいる。コースを表示中だからログインは当然している。なのにログインページに飛ばされるということは、MoodleSessionのクッキーをちゃんと送っていないということしかない。ログのフォーマットを変更してこのクッキーを表示させてみたら、たしかにFirefox 3のみ送っていない。他のブラウザは同じ Java RE で動いているので、Firefox 3のバグに違いない。

というわけで、Bugzillaで検索して出てきたのが、Bug 441166。「サードパーティの Cookie も保存する」のチェックをはずしていると、appletがクッキーを送らないらしい。原因はまさにこれだった。基本的に一部の例外以外はFirefox終了時にクッキーを消す設定にしているが、Firefox 3の導入時に、そういえばサードパーティCookieは拒否することにした気がする。Firefox 2にはそんな設定がなかったから問題が起きなかったわけである。

いちおう解決というか、Firefox 3にがんばってもらわないと好みの設定ができないわけで、その意味で当面解決不能。

0 件のコメント: