Major Konqueror/KHTML regression

Koos Vriezen koos.vriezen at xs4all.nl
Fri Dec 12 19:47:18 GMT 2003


On Fri, Dec 12, 2003 at 07:24:37PM +0100, David Faure wrote:
> On Friday 12 December 2003 13:55, Koos Vriezen wrote:
> > On Fri, Dec 12, 2003 at 12:33:08PM +0100, Koos Vriezen wrote:
> > > On Fri, Dec 12, 2003 at 05:38:32AM -0500, George Staikos wrote:
> > > > 
> > > >    There seems to be something really bad happening in KHTML/Konqi in HEAD.  I 
> > > > haven't narrowed it down yet, but it seems that loading a page with animated 
> > > > images or flash running causes the "stop" action to remain active 
> > > > indefinitely.  I don't know if this is new in 3.2 or not.  In any case, 
> > > > clicking on this action kills all active nspluginviewer parts, leaving 
> > > > unpainted regions in the page.  Likewise, clicking the "X" that clears the 
> > > > Location bar triggers that action and does the same thing.  NSPlugin parts 
> > > > should never be killed like this.  Does anyone recall changing this behaviour 
> > > > or know where it could be stemming from?
> > > 
> > > Can't look at the source right now, but is completed() emited by the part?
> > 
> > This is only true if started(job) is emitted (see log r 1.819). But
> > looking at David's r 1.941, could be that something similar happens for
> > you here. Maybe
> > 
> > diff -u -3 -p -r1.949 khtml_part.cpp
> > --- khtml_part.cpp      12 Dec 2003 07:59:05 -0000      1.949
> > +++ khtml_part.cpp      12 Dec 2003 12:53:39 -0000
> > @@ -3889,7 +3889,10 @@ bool KHTMLPart::processObjectRequest( kh
> >    else if ( !url.isEmpty() )
> >    {
> >        //kdDebug( 6050 ) << "opening " << url.url() << " in frame " << child->m_part << endl;
> > -      return child->m_part->openURL( url );
> > +      bool b = child->m_part->openURL( url );
> > +      if (child->m_bCompleted)
> > +          checkCompleted();
> > +      return b;
> 
> Indeed this looks correct to me. (Not sure why/how it worked before).

Only thing I can think of is that the surrounding document is completed earlier
than before or one redundant checkCompleted() was stripped out somewhere.
Actually, I've never seen it what George describes. But browsing through the
code, the 'stop' action calls closeURL on the part and khtml calls that on
its child parts and nsplugin deletes the widget in this function.
So this could explain it. Will commit it then..

Thanks for your comment,

Koos




More information about the kfm-devel mailing list