Comment 188 for bug 410407

Revision history for this message
Evan Martin (Chromium) (evan-chromium) wrote : Re: [READ DESCRIPTION] Flash is not recognizing mouse clicks in multiple situations

Hi,

I'm the Chrome developer responsible for plugins on Linux. This bug puzzled us for quite some time, but I *believe* we have fixed it. The answer was setting GDK_NATIVE_WINDOWS=1. (The reason it took me so long to figure out that this was the proper setting is that we would not pass the environment setting along when we started the plugin process, so just running "GDK_NATIVE_WINDOWS=1 google-chrome" didn't work; I had to modify the code.)

It's hard to know what Flash does without source, but the fact that this helps indicates that it likely mixes the GTK calls necessary to work with the GTK plugin API used by browsers along with direct X calls. That is what setting the env variable fixes, and that seems plausible to me given that Flash is probably trying to do fast X graphics.

The reason so many users have different experiences with this bug is due to two things:
1) the bug exhibits itself as a race, so (for example) it will only happen on certain YouTube videos, or depending on how slow your computer is. This is a wild guess, but perhaps compiz delays window creation making it worse.
2) user configurations are very different. If you're using nspluginwrapper it again makes things worse. It may be that nspluginwrapper itself also doesn't pass GDK_NATIVE_WINDOWS along to its plugin subprocess. M guess for the reason that "just reinstall Flash" has worked for users like in comment #186 is because by installing Flash directly you circumvent nspluginwrapper.

The reason this bit Chrome the hardest is because we *always* run plugins out of process, and for many users they also have nspluginwrapper, so we get plugins wrapped through two layers of indirection. I am fairly confident that if you use a new Chrome + no nspluginwrapper this bug is fixed; I expect you can modify Mozilla and nspluginwrapper to set this variable and fix it for them too.