[WebKit-devel] Flash workaround

Jakub Stachowski qbast at go2.pl
Sun Mar 15 20:14:08 CET 2009


Dnia Sunday 15 March 2009, Michael Howell napisał:
> On Saturday 14 March 2009 16:21:33 Jakub Stachowski wrote:
> > Dnia Saturday 14 March 2009, Michael Howell napisał:
> > > On Saturday 14 March 2009 14:10:31 Jakub Stachowski wrote:
> > > > Dnia Saturday 14 March 2009, Michael Howell napisał:
> > > > > On Saturday 14 March 2009 11:34:08 Jakub Stachowski wrote:
> > > > > > Hello,
> > > > > >
> > > > > > Currently plugin factory contains workaround for flash (returning
> > > > > > QWebView instead of 0). What bug does it exactly works around?
> > > > > > If it is video player embedded from youtube showing just controls
> > > > > > but no video (testcase:
> > > > > > http://www.webscription.net/s-108-david-weber.aspx ) then
> > > > > > attached patch contains alternative solution.
> > > > > > The problem is that QNetworkManager (and maybe flash plugin)
> > > > > > expects to handle redirects itself, but KIO internally fetches
> > > > > > destination URL instead. The patch makes KNetworkReply emit
> > > > > > finish()  and kill the KIO job upon redirect.
> > > > >
> > > > > QtWebKit tries to use KWebPluginFactory for _all_ plug-in requests,
> > > > > even if the actual plug-in was not advertised by KWebPluginFactory,
> > > > > but is supposed to be used internally by QtWebKit's built-in Flash
> > > > > support.
> > > > >
> > > > > I wish I knew how to pass the options to the new QWebView, which
> > > > > would fix YouTube.
> > > >
> > > > OK, but why not simply return 0? In this case QtWebKit tries built-in
> > > > support for netscape plugins. It makes webkitkde more crashy, but
> > > > then again even with QWebView workaround it crashes whenever it
> > > > likes. I know that QWebView is workaround but what is actual bug
> > > > being worked around? Crashing? Not showing movie on youtube?
> > > > Something else?
> > > >
> > > > Even nspluginviewer crashes with webkitkde :-(
> > >
> > > QtWebKit tries to use KWebPluginFactory for all plug-ins, even if it's
> > > actually the built-in Flash support that provides the plug-in.
> >
> > I'm missing something here. If you remove nspluginviewer from list of
> > embeddable components for application/x-shockwave-flash  then
> > createPartInstanceFromQuery will return 0. At this point
> > KWebPluginFactory::create could just return 0 and QtWebKit try its
> > embedded support (see FrameLoaderClientQt::createPlugin - first it tries
> > plugin factory and if it returns 0 then it tries built-in support), but
> > instead it does hack with QWebView. I still don't understand, what it is
> > supposed to work around.
> >
> > About my 'nspluginviewer' comment: Maksim managed to fix that 'white
> > rectangle' bug so I decided to go with it instead of QtWebKit built-in
> > support. Unfortunately nspluginviewer crashes too - somewhere deep in gtk
> > or glib.
>
> No. If you return 0 QtWebKit won't try it's built-in support. It'll simply
> fail. I've tried.
>
> If this has changed recently, then it can be removed.

I'm using 4.5.0 release from OpenSuse package and yes, returning 0 makes 
QtWebKit load flash using internal support.

Unfortunately it crashes later when leaving the page (flash calling 
XtRemoreTimeout, which is at least weird in gtk2-based plugin).

So we have 3 options (QWebView workaround, returning 0 and nspluginviewer) and 
none of them fully works :-(

On the other hand I think KNetworkReply fix for redirects is useful anyway.
Should I commit it (without removing QWebView hack) ?
 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/webkit-devel/attachments/20090315/ef5f950a/attachment.htm 


More information about the WebKit-devel mailing list