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

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

もずはっく日記(2015年7月)

2015年7月19日

Bug-org 1176955 [e10s][TSF] Kakutei-Undo of Japanese IME doesn't work
初回投稿日時: 2015年07月19日14時11分20秒
カテゴリ: e10s IME Mozilla Core Mozilla42 TSF バグ修正
SNS: (list)

e10sモードでは、TSFモード時にATOK等の実装している確定アンドゥが動かないというバグです。

確定アンドゥは直前に確定した文字列を選択し、そこに未確定文字列を挿入(置換)することで実現されています。しかし、e10sモードでは、非同期でこの選択範囲の変更通知がやってきます。そのため、nsTextStoreはやってきた選択範囲の変更通知を無視して良いかどうか判断がつかず、未確定文字列を強制確定してからTSFに新しい選択範囲を通知していました。

今回の修正ではひとまず、WidgetSelectionEventを子プロセスでハンドリング中に選択範囲が変更された場合、それはそのイベントが原因で発生した通知であるという旨を示すフラグをIMENotificationに追加しました。これにより、nsTextStoreはこれを無視することでひとまず確定アンドゥが機能するようになっています。

ただし、nsISelectionListenerを利用したアドオンが選択範囲をさらに変更するような場合、このフラグは適切に設定されません。しかし、そのようなアドオンの機能というのが今のところ思いつかないので簡単な修正に留めています。

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

bug-org 1176955を含むエントリ