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

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

もずはっく日記(2014年3月)

2014年3月31日

Bug-org 964718 MOZ_CRASH(WidgetQueryContentEvent doesn't support Duplicate()) at ../../dist/include/mozilla/TextEvents.h:333
初回投稿日時: 2014年03月31日20時55分21秒
最終更新日時: 2014年04月17日12時32分00秒
カテゴリ: Events Mozilla Core Mozilla29 Mozilla30 Mozilla31 バグ修正
SNS: (list)

Geckoが内部処理用に発行したイベントが、何らかの理由でWebコンテンツにキャッチされ、サポートしていないDOMイベントのコピー処理が走って、クラッシュする、というバグです。

内部処理用のイベントは、匿名のDOMイベントの発火も伴います。しかし、イベントが匿名であるが故に、DOMイベント用の処理は不要なはずなので、そのような想定外のことが発生した場合には、クラッシュするようにしておいたところ、クラッシュするケースが発見されました。

発見されたケースでは、開発者向けツールで、イベントを捕捉するようにすることが条件となっていました。Smaugによると、nsIEventListenerServiceを利用すれば、全てのイベントを捕まえることが可能なので、それが原因かもしれない、とのことでしたが、確認はとれていません。

今回の修正で、DOMイベントの発火が内部処理でも不要なものに関しては、DOMイベント自体の生成をスキップするように修正しました。このため、IME利用時のパフォーマンスが若干改善していると思われます(体感はできないと思いますが、バッテリの浪費を防ぐという意味で)。

また、匿名のイベントを今の設計では発火させざるを得ないものに関しては、そのまま発火させ、DOMイベント用の処理を実装し、クラッシュしないように修正しています。

AuroraとBetaにもパッチが入ったため、29以降で修正されたことになります。

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

bug-org 964718を含むエントリ