编辑:除了赏金,我们愿意支付 250 美元在 Firefox/Gecko 代码库中修复这个错误。这是一个重现问题的简单测试项目(Visual Studio 2008 C#)。
编辑 #2我们愿意支付 600 美元来修复这个错误。有关重现问题的示例项目,请参见上文。
我们的 C# Windows 窗体上有一个 Firefox (Gecko) ActiveX 控件来显示 HTML。
当这个 Firefox ActiveX 控件出现在我们的表单上时,大约 2-3% 的按键无法通过。或者更确切地说,发送不同的 Windows 消息:
我们按住 TAB 键在 3 个常规 WinForms 文本框之间切换。它将在 97% 的时间内正确运行。Spy++ 告诉我们 WM_KEYDOWN 消息已正确发送:
正常行为 http://judahhimango.com/images/normaltab.jpg
但是随机,可能有 2-3% 的时间,tab 键(或其他键)没有被正确处理。Spy++ 告诉我们正在发送 WM_CHAR:
奇怪的行为 http://judahhimango.com/images/screwytab.png
当出现奇怪的行为时,要么根本没有处理密钥,要么处理不正确(例如将 '\t' 字符插入不支持制表符的文本框中。
仅当 Firefox ActiveX 控件在我们的表单上时才会发生这种情况。
我们的问题是:Firefox/Gecko 引擎是否安装了某种可能导致这些副作用的键盘挂钩?或者更好的是,我们如何解决这个问题?