编辑:除了赏金之外,我们愿意支付250美元让这个bug在Firefox/Gecko代码库中得到修复。 Here is a simple test project(Visual Studio 2008 C#)可以重现问题。Firefox/Gecko控件干扰Windows Forms按键
编辑#2我们愿意支付600美元修复此错误。请参阅上面的示例项目来重现问题。
我们的C#Windows窗体上有一个Firefox(Gecko)ActiveX控件来显示HTML。
当这个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
当发生异常行为,或者该键不处理在所有,或不正确(如插入一个“\吨”字符到文本框处理不支持制表符
这只有在Firefox的ActiveX控件是我们的表格上发生
我们的问题是:。不火狐/ Gecko引擎安装某种键盘钩子的,可能导致这些副作用?或更好的y et,我们如何解决这个问题?
你可以看看Firefox的源代码,它可能是找出发生了什么的最快方法。您也可以使用它们的源代码和符号服务器进行相当简单的调试(https://developer.mozilla.org/En/Using_the_Mozilla_symbol_server)。 此外,你为什么不在表单中使用基于MSHTML的webbrowser控件? – 2009-07-10 17:13:51
考虑到重现这个错误并不容易(它可能会出现3%的按键),并且考虑到Mozilla是一个巨大的X平台代码库,调试Mozilla来发现这个错误似乎是一项艰巨的任务。 – 2009-07-10 17:33:40
关于MSHTML,我们尝试过。它是一个错误工厂。 AccessViolationExceptions通过托管包装中的错误,COM错误;这是一场无尽的,没有结果的战斗,让这件事情奏效。 – 2009-07-10 17:34:32