--===============2018580618== Content-Type: multipart/signed; boundary="nextPart1514467.tipklOYoFM"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit --nextPart1514467.tipklOYoFM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline In a message on Tuesday 29 April 2008 Sergey Saukh you wrote: > Hello, > > > > well... crash on exit problem is still not solved (nspluginviewer just > > > was silently exitting because of recursive calls in NSPluginInstance > > > destructor). Now when there is no recursive calls - it crashes again, > > > because of call to XtRemoveTimeOut from flashplayer library, when we > > > call _pluginFuncs.destroy in NSPluginInstance::destroy(). > > > > > > A wierd solution to this - is to set UserAgent to "firefox" for > > > nspluginviewer. This can be done in konq settings. > > > > Really strange. I remeber some developer has written about such a > > behavior. This is of course not the solution; the user does not have to > > change that. Can we hardcode that in the code, so it will work all the > > time (of course only for the flashplugin)? > > I've come to more wierd solution, while trying to hardcode UserAgent for > flashplugin. I don't know how to explain such behaviour, but I think this > is the way how flashplugin initializes itself. > When flashplugin executes "setWindow" (or "Initialize", I don't know for > sure) it calls NPN_UserAgent with NPP set to NULL. At this point I return > an empty string. Subsecuent calls to useragent are ok (NPP is set and > function returns string configured in browser, (default "... KHTML, > blablabla", for exapmple). This time crash-on-exit problem is totally > gone... > > Please, review the new patch and say what do you think about it. Ummm, it's perfectly clear now, that returning empty UserAgent string to=20 flashplugin, when it executes "Initialize" is generally not a good idea,=20 because it breaks any actions, which depend on browser actions (like open n= ew=20 url). But returning just "Gecko" instead do the trick. I think, that in "Initialize" phase, flashplugin checks in what environment= it=20 was run, i.e. if it was run from a browser and checks what type of browser = is=20 it. If there was no (or empty) UserAgent string, then it assumes that it was no= t=20 launched from a browser window and disables any actions, which lead to=20 opening urls, or whatever. If it receives string which contains "Gecko" (not "(like Gecko)" though -=20 seems it doesn't like gecko in parenthesis) it assumes, that it runs in a=20 native environment and doesn't make any calls to libXt upon destruction. If it receives any other UserAgent string, then it uses libXt (don't know w= hy)=20 and we end up with nspluginviewer crash, when "destroy" method of flashplug= in=20 tries to call "XtRemoveTimeout"... So I see two ways out from this mess: 1. Hardcode to return "Gecko" from g_NPN_UserAgent, when NPP structure is n= ot=20 set (indicates that it was called by flashplugin from "Initialize"). 2. Make Adobe programmers to fix this issue in flashplugin itself. =2D-=20 Best regards, Sergey A Saukh --nextPart1514467.tipklOYoFM Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iQEVAwUASBapsD8ijVOOoaEyAQJJKAf8CRa6AosPuIVXoBMp+yXN365EmgsyCqxv pJWE7aLJwrhnYUksN0EAHipp7WHIj6WWXRYPBmKiwXCHo6z7+3RtbHUvlVSkL/jo zBMPhBbbRwgUTDd9/6biRklmhcCXAVLKQ69tQunTW1w9UwKyEF94NJ4jH9nj38vF 1BV/Jj2SRf7BxBoACROnEylg63UfqSEnXdF8twvPmhGm6VysEV/rncAKo1WeSuCZ HkJfPR1du1B+1DbyVgk1NnLeloqcS+5v2WbMPNF7hNKq/JosFczXQkuwuF0ojfET rdtxlngFA/rI/2vU1r5gqp1wUqQwql7WlSdJlvo+wYwWGOCwp0PH2Q== =cehI -----END PGP SIGNATURE----- --nextPart1514467.tipklOYoFM-- --===============2018580618== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline >> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe << --===============2018580618==--