[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
Mon Feb 1 07:56:03 PST 2010
https://bugs.webkit.org/show_bug.cgi?id=33150
Benjamin Poulain <benjamin.poulain at nokia.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #47622|0 |1
is obsolete| |
Attachment #47622|commit-queue? |
Flag| |
Attachment #47844| |review?, commit-queue?
Flag| |
--- Comment #63 from Benjamin Poulain <benjamin.poulain at nokia.com> 2010-02-01 07:55:57 PST ---
Created an attachment (id=47844)
--> (https://bugs.webkit.org/attachment.cgi?id=47844)
Repaint only the invalidated area after scrolling
Updated the patch thanks to Dave Hyatt's comments:
(In reply to comment #62)
> (1) You don't really need a hash of RenderObjects on FrameView. A count is
> sufficient. Then you can just walk the m_positionedObjects list of the
> RenderView and if the RenderBox is fixed positioned, it's one you care about.
> (This also bypasses the need to do any transform checking, since you'll only be
> in the RenderView list if your containing block was the RenderView).
I have changed the code to use the list contained in RenderBlock.
I like that lot better than what I had done previously.
To access it from RenderView, I had to change:
- void insertPositionedObject(RenderBox*);
- void removePositionedObject(RenderBox*);
+ virtual void insertPositionedObject(RenderBox*);
+ virtual void removePositionedObject(RenderBox*);
void removePositionedObjects(RenderBlock*);
+ ListHashSet<RenderBox*>* positionedObjects() const { return
m_positionedObjects; }
> (2) Fixed positioned objects are always RenderBoxes, so you need to tighten up
> the code here. You can rename your methods to refer to use FixedPositionedBox
> rather than FixedPositionedObject.
> (3) You've duplicated code in RenderObject::destroy() and
> RenderWidget::destroy(). If you add a helper function to RenderBox, e.g.,
> unregisterFixedPositionedBox, then RenderWidget could call it in its destroy
> method. The code in RenderObject should be moved to RenderBox.
I have moved the (un)registration to
RenderView::insertPositionedObject()
RenderView::removePositionedObject()
So the problem of the transformations disappears.
> (3) All the code in RenderObject::styleWillChange is misplaced, since only
> RenderBoxes can be fixed positioned. You should move the code into RenderBox.
> (Yes, some of the code in there was already misplaced, but by adding a big new
> pile of code, you've made the problem worse. :)
Right. Fixed :)
> (4) I dislike "scrollContentsFastPath" when we know what we mean is blitting.
> scrollContentsWithBlit would be my suggestion, although I don't like my own
> choice of name much better.
I have not changed the name yet. I don't know about putting "blit" in the name
because we don't blit if we reach the threshold.
What about scrollContentsWithBlitIfPossible(), tryScrollContentsWithBlit()? ;)
--
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