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

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

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

2014年3月20日

Bug-org 977959 Redesign native key bindings handling
初回投稿日時: 2014年03月20日21時34分46秒
カテゴリ: GTK Mac Mozilla Core Mozilla30 バグ修正
SNS: (list)

Mac版と、Linux (GTK)版では、OSのネイティブウイジットのショートカットキーを可能な限りエミュレートするために、エディタがキーイベントを処理しなかった場合に、nsINativeKeyBindingsのサービスを利用しています。

しかし、e10sではネイティブイベントを子プロセスに渡すことはできないので、どうするかが問題になります。これに対応するため、まずは、その結果を保存しておきやすいように、結果は、XULのコマンドの文字列ではなく、enumで保存しておけるようにしました。これにより、キャッシュする配列を作成するコストが大きく削減されます。

次に、構造をシンプルにするために、nsINativeKeyBindingsのインターフェース、サービス共に廃止し、これらの実装は、各widget内の、ただのシングルトンのクラスに変更しました。XPのコードからは、nsIWidgetのメソッドで結果を問い合わせるように抽象化しています。

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

bug-org 977959を含むエントリ