この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2008年12月)

2008年12月20日

Bug 6462 [Win] ハングルのIMEでキャレットが常に変換文字列の最初に表示される
初回投稿日時: 2008年12月20日05時40分46秒
最終更新日時: 2008年12月20日05時41分47秒
カテゴリ: Mozilla Core バグ修正
SNS: (list)

Windowsに標準で付いているハングルのIMEでは未確定文字列の先頭に常にキャレットが表示されるというバグです。

問題のIMEはキャレット位置を問い合わせると、常にゼロが返されていたのが直接の原因です。えむけいさんの指摘通り、IMEからの情報を無視して問い合わせているGeckoもまずいのですが、IMEが非サポートのプロパティへのアクセスにエラーコードを返さなかったのもこのバグが長年修正されなかった原因だったわけですね。

IMEのようなミドルウェアを作る立場からするとあらゆるアプリケーションのバグから逃れて正常っぽく動作するためにエラーを返さない、という手法が良いのかもしれません。そう考えると納得がいくのですが、アプリ開発者からすると、自分達の間違いを見つけるのが困難になるのがたち悪い話です。

GeckoのAPIも本当はエラーであっても(既存の動作との互換性のために)意図的にエラーを返さないものを書いたことがあるのでなかなか難しいことなのかもしれません。GeckoのAPIもそんな感じですので、Fxの多くのアドオンにも大量のバグが含まれているかもしれません。おそらく全てのXPCOMコンポーネントのメソッドをtry-catchで保護して呼び出しているアドオンというのは少ないでしょう。こういったアドオンに潜在しているバグもバージョンアップ時に問題になっているのかもしれません。

関連するかもしれないエントリ

bug 6462を含むエントリ