[Webkit-unassigned] [Bug 33150] Do not render the full frame when there is some elements with fixed positioning

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jan 7 02:51:57 PST 2010


https://bugs.webkit.org/show_bug.cgi?id=33150


Benjamin Poulain <benjamin.poulain at nokia.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #45996|0                           |1
        is obsolete|                            |
  Attachment #45996|review?, commit-queue?      |
               Flag|                            |
  Attachment #46040|                            |review?, commit-queue?
               Flag|                            |




--- Comment #13 from Benjamin Poulain <benjamin.poulain at nokia.com>  2010-01-07 02:51:55 PST ---
Created an attachment (id=46040)
 --> (https://bugs.webkit.org/attachment.cgi?id=46040)
Repaint only the invalidated area after scrolling

(In reply to comment #12)
> (From update of attachment 45996 [details])
> 
> > +void FrameView::fastScrollContents(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect)
> 
> I dislike the method name. Shouldn't it always be fast? 

No, there are some cases when you cannot avoid the slow path. For example, if
the view is not opaque, you need full repaint.

> Does FrameView already
> have a scrollContents method?

Yep.

> > +        Vector<RenderObject*> objectsFixedInViewport;
> 
> We say fixedObjects elsewhere, right?

Right :)
Fixed

> Instead of the updateInvalidSubRect, couldn't you clear the
> objectsFixedInViewport instead? and ask
> if (!objectsFixedInViewport.isEmpty()) below? I find that less mysterious.

This would not be correct. You can have updateInvalidSubRect == true and
objectsFixedInViewport.isEmpty() in the case where all fixed object are under a
transformed layer in the hierarchy.

> > +                IntRect updateRect = (objectsFixedInViewport[i])->paintingRootRect(topLevelRect);
> 
> Are the () really needed?

Oups. Fixed  :)

> > +            // there are too many fixed objects, repaint everything might be easier
> 
> // the number of fixed objects exceed the threshold, so we repaint everything. 

Changed.


> >      if (canBlitOnScroll() && !rootPreventsBlitting()) { // The main frame can just blit the WebView window
> > -       // FIXME: Find a way to blit subframes without blitting overlapping content
> > -       hostWindow()->scroll(-scrollDelta, scrollViewRect, clipRect);
> > +        // FIXME: Find a way to blit subframes without blitting overlapping content
> > +        fastScrollContents(-scrollDelta, scrollViewRect, clipRect);
> 
> Wrong indentation

Is it? The coding convention says 4 spaces, not 3.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list