Mozilla已修复Flash,导致Firefox的窗口失去焦点

尝试消除问题的工具

早在2012年中期就发现了一个错误,当在其中播放Flash内容时,该错误会导致Firefox浏览器窗口在某些情况下失去焦点。

这意味着Firefox用户必须单击浏览器窗口才能再次使其成为系统上的活动窗口,即使以前是活动窗口也是如此。该错误有几个问题,包括无法在浏览器中打开新标签页的Ctrl-T之类的键盘快捷键。

根据用户报告,遇到该错误的系统最初是带有Flash 11.3的x86 Windows 7操作系统,但其他系统(如Windows 8.1)也受到它的影响。

根据Mozilla的说法,是Flash(而非Firefox)中的错误导致了浏览器用户的问题。

该问题很快被链接到Flash的保护模式。禁用了该模式或运行了操作系统(如果该模式不可用)的用户没有遇到此问题。

重现问题

flash player bug firefox

要重现该问题,您需要访问运行Flash内容的网页,例如http://www.adobe.com/software/flash/about。

当您使用Ctrl-Shift-Esc打开系统的任务管理器时,您会注意到Flash进程已加载。

然后有必要关闭所有再次播放Flash内容的窗口,并等待直到Flash进程自动终止。

当您再次使用Flash打开网页时,Firefox将失去焦点。

其他错误可能与该问题有关,例如,新窗口在后台打开,而不在系统上打开。

解决问题

Mozilla与Adobe合作解决了该错误,但找不到解决方案。

昨天, 亚伦·克洛茨(Aaron Klotz)发布 关于Bugzilla的评论,但报告确认已找到该问题的可能补丁。

使用LockSetForegroundWindow的可能补丁

此修补程序使用LockSetForegroundWindow包装了进程NP_Initialize调用。这似乎做对了。

该实现目前正在测试中,但到目前为止看起来很有希望。如果在测试过程中未发现问题,它可能会迅速进入Firefox Nightly,并从此一直到浏览器的稳定版本。

更新资料 :看来Adobe也已在Flash Player 15中修复了该错误。

启动Flash Player进程时,Firefox现在将保持焦点(3223393)