Bug 6462 [Win] ハングルのIMEでキャレットが常に変換文字列の最初に表示される
初回投稿日時: 2008年12月20日05時40分46秒
最終更新日時: 2008年12月20日05時41分47秒
カテゴリ: Mozilla Core バグ修正
SNS:
Tweet (list)
Windowsに標準で付いているハングルのIMEでは未確定文字列の先頭に常にキャレットが表示されるというバグです。
問題のIMEはキャレット位置を問い合わせると、常にゼロが返されていたのが直接の原因です。えむけいさんの指摘通り、IMEからの情報を無視して問い合わせているGeckoもまずいのですが、IMEが非サポートのプロパティへのアクセスにエラーコードを返さなかったのもこのバグが長年修正されなかった原因だったわけですね。
IMEのようなミドルウェアを作る立場からするとあらゆるアプリケーションのバグから逃れて正常っぽく動作するためにエラーを返さない、という手法が良いのかもしれません。そう考えると納得がいくのですが、アプリ開発者からすると、自分達の間違いを見つけるのが困難になるのがたち悪い話です。
GeckoのAPIも本当はエラーであっても(既存の動作との互換性のために)意図的にエラーを返さないものを書いたことがあるのでなかなか難しいことなのかもしれません。GeckoのAPIもそんな感じですので、Fxの多くのアドオンにも大量のバグが含まれているかもしれません。おそらく全てのXPCOMコンポーネントのメソッドをtry-catchで保護して呼び出しているアドオンというのは少ないでしょう。こういったアドオンに潜在しているバグもバージョンアップ時に問題になっているのかもしれません。