Re: nsplugins patch (KDE4)
- Date: Tue, 29 Apr 2008 17:09:24 +0200
- From: Sebastian Kuegler <sebas@xxxxxxx>
- Subject: Re: nsplugins patch (KDE4)
On Tuesday 29 April 2008 06:52:54 Sergey Saukh wrote: > 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 > flashplugin, when it executes "Initialize" is generally not a good idea, > because it breaks any actions, which depend on browser actions (like open > new url). > But returning just "Gecko" instead do the trick. > > I think, that in "Initialize" phase, flashplugin checks in what environment > it was run, i.e. if it was run from a browser and checks what type of > browser is it. > If there was no (or empty) UserAgent string, then it assumes that it was > not launched from a browser window and disables any actions, which lead to > opening urls, or whatever. > If it receives string which contains "Gecko" (not "(like Gecko)" though - > seems it doesn't like gecko in parenthesis) it assumes, that it runs in a > 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 > why) and we end up with nspluginviewer crash, when "destroy" method of > flashplugin 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 > not set (indicates that it was called by flashplugin from "Initialize"). 2. > Make Adobe programmers to fix this issue in flashplugin itself. Maybe Mike (who I think is one of the flashplugin developers at Adobe, added to CC:) can comment on this? -- sebas http://www.kde.org | http://vizZzion.org | GPG Key ID: 9119 0EF9
Attachment:
signature.asc
Description: This is a digitally signed message part.
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<
- References:
- nsplugins patch (KDE4)
- From: Sergey Saukh
- Re: nsplugins patch (KDE4)
- From: Sergey Saukh
- Re: nsplugins patch (KDE4)
- From: Sergey Saukh
- nsplugins patch (KDE4)
- Prev by Date: Re: plasma compile fails (Re: Error compiling "kdebase/workspace/libs/kworkspace")
- Next by Date: KNumInput::setLabel and ugly dialogs
- Previous by thread: Re: nsplugins patch (KDE4)
- Next by thread: Re: nsplugins patch (KDE4)
- Index(es):