Bug-org 552163 [OOPP]Can not start scroll page by mouse wheel when mouse cursor is over a flash video.
初回投稿日時: 2010年04月12日19時11分22秒
カテゴリ: Mozilla Core バグ修正
SNS:
Tweet (list)
OOPPで別プロセスのウインドウを生成するとその上ではマウスホイールでスクロールできないというバグです。
Geckoはカーソル下のウインドウでホイールイベントを生成していますが、このときにnsWindow
のメソッドを直接呼び出します。このポインタは発見したウインドウにあらかじめプロパティとして保存しておいたものですが、プロセスをまたいで取得できてしまいます。このため、別のプロセスのnsWindow
に対してアクセスしてしまうと、当然のことながらクラッシュします。このクラッシュを防ぐために、Geckoは発見したウインドウハンドルが別プロセスのものなら処理を中断していました。
というわけで、OOPPによって生成された別プロセスのウインドウ上でも、処理を全く行っていない、というのがこのバグの原因でした。対策として、別プロセスのウインドウだった場合、ウインドウのツリーを遡っていって、自分のプロセスのウインドウが出現した場合、そのウインドウに対してSendMessage()
でメッセージをリダイレクトするようにしています。