:賞金に加えて、Firefox/Geckoのコードベースでこのバグを修正するために$ 250を支払う予定です。 Here is a simple test project(Visual Studio 2008 C#)を使用して問題を再現してください。Firefox/GeckoのコントロールがWindowsフォームのキープレスに干渉する
編集#2このバグを修正するには$ 600を支払う必要があります。上記の問題を再現するサンプルプロジェクトを参照してください。
私たちはC#Windowsフォーム上にHTMLを表示するためのFirefox(Gecko)ActiveXコントロールを用意しています。
このFirefox ActiveXコントロールが私たちのフォーム上にある場合、私たちのキープレスの約2〜3%は通過しません。代わりに、別のWindowsメッセージが送信されます。
Tabキーを押しながら3つの通常のWinFormsテキストボックスをタブします。時間の97%が正しく動作します。スパイ++は教えてくれるWM_KEYDOWNメッセージが正常に送信されます。
normal behavior http://judahhimango.com/images/normaltab.jpg
しかし、ランダムに、時間の多分百分の2から3には、Tabキー(または他のキー)が右に処理されていません。スパイ++は教えてくれるWM_CHARが代わりに送信されています:
odd behavior http://judahhimango.com/images/screwytab.png
奇妙な現象が発生し、いずれかのキーがまったく処理されない、または正しく(例えばテキストボックスには「\ t」の文字を挿入するように処理され、それは、タブ文字をサポートしていません
このFirefoxのActiveXコントロールは、フォーム上にある場合にのみ発生し
私たちの質問はです:Firefoxの/ Geckoエンジンは、これらの原因となることがありますキーボードフックのいくつかの種類をインストールしません副作用?またはより良いy私たちはこの問題をどのように修正するのですか?
あなたはFirefoxのソースコードを見ることができます。何が起きているのかを知る最も速い方法かもしれません。ソースとシンボルサーバーを使ってデバッグすることもできます(https://developer.mozilla.org/En/Using_the_Mozilla_symbol_server)。 また、フォームでMSHTMLベースのWebブラウザコントロールを使用しているのはなぜですか? –
このエラーを再現するのは簡単ではありません(キープレスの3%になるかもしれません)、Mozillaは巨大なx-platコードベースであるため、このバグを見つけるためにMozillaをデバッグするのは難しい作業です。 –
MSHTMLに関しては、これを試みました。そのバグの工場。マネージラッパーのバグ、COMエラーによるAccessViolationExceptions。そのことを機能させるのは無限で無益な戦いでした。 –