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

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

もずはっく日記(2016年2月)

2016年2月7日

Bug-org 1250050 Add a pref to control whether wheel events should be sent to plug-ins
初回投稿日時: 2016年10月15日20時16分02秒
カテゴリ: Firefox Flash Mozilla46 plugin Windows バグ修正
SNS: (list)

さて、徐々に日記の更新を再開していきたいと思います。やはり、私のやってる範囲は地味な変更が多いので他の方に知っておいてもらった方が良いですし。

このバグはWindows版でwindowlessモードで動作しているプラグイン(主にFlash Playerですが)にマウスホイールのメッセージをデフォルトアクションとして送信するようになったことに関連しています。

現在のところ、Flash Playerが実際にマウスホイールメッセージを処理するかを取得、もしくは結果を受けとる方法が存在していないため、Geckoはメッセージをプラグインに送信した後、そのメッセージを処理されたものとして、Gecko内でスクロール処理を行わないようにしています。これは、ホイールを操作することによって、プラグイン内とGeckoと両方でなんらかの処理が行われてしまうのを防ぐためです。

しかし、これによって、windowlessプラグインによってマウスホイールによるスクロールが阻害されてしまうという不満が出てきます。特に、windowlessプラグインは滅多にスクロール等でマウスホイールイベントを処理していないという点が問題になります。

そこで、プラグイン上でのホイール操作を諦め、常にGeckoに処理を行わせるようにする設定を追加しました。about:configからplugin.mousewheel.enabledfalseに設定することでこのバグを回避できます。

なお、この設定は、Firefoxの再起動を必要としませんので、特定のプラグインコンテンツでホイールが必要な時のみ、上記の設定を一時的にtrueに戻すといった使い方が可能です。

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

bug-org 1250050を含むエントリ

このエントリへのリンク元