Fwd: firefox 4: problem with NPN_GetURL target=_self
Andriy Gapon <[email protected]>
| Newsgroups | gmane.comp.mozilla.devel.plugins |
|---|---|
| Message-ID | <[email protected]> |
I think that this list should suite better than [email protected] to which I originally posted. -------- Original Message -------- Message-ID: <[email protected]> Date: Tue, 19 Apr 2011 18:44:08 +0300 From: Andriy Gapon <[email protected]> User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.15) Gecko/20110309 Lightning/1.0b2 Thunderbird/3.1.9 MIME-Version: 1.0 To: [email protected], [email protected] Subject: firefox 4: problem with NPN_GetURL target=_self [sorry for the cross-post but the issue at hand seems to be of dual nature] I observe a particular problem with Firefox 4 and IcedTea Java plugin. The issue can be described in simple terms as follows: - the plugin calls the browser via NPN_GetURL(target=_self) [because that's what a Java applet instructs it to do] - the browser makes a "nested" call back to the plugin via NPP_GetValue(NPPVpluginScriptableNPObject) - because of the peculiarities of the plugin implementation it gets stuck in this nested call until its internal timeout is reached [*] Now, the problem could be simply attributed to that peculiarity and the case would be solved for Firefox. But not quite yet. The same plugin with the same applet work without the problem with Firefox 3 and other browsers. I see one difference in the behavior: those browsers call NPP_Destroy in response to NPN_GetURL(target=_self). I guess that that makes sense because of the target=_self. [*] The way IcedTea uses glib channels for communication with Java process (applet runner) via named pipes precludes "recursive" communication - while a channel callback is running its channel seems to be excluded from being polled in the glib main loop. Thank you in advance for any help / insights. -- Andriy Gapon