[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: nsplugins patch (KDE4)
From:       Sebastian Kuegler <sebas () kde ! org>
Date:       2008-04-29 15:09:24
Message-ID: 200804291709.25278.sebas () kde ! org
[Download RAW message or body]

[Attachment #2 (multipart/signed)]


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 

["signature.asc" (application/pgp-signature)]

>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic