Closed Bug 547132 Opened 14 years ago Closed 14 years ago

Clip the scrollport before we perform display list analysis for scrolling

Categories

(Core :: Layout, defect)

defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: roc, Assigned: roc)

References

Details

Attachments

(1 file)

When we unify chrome and content rendering (bug 130078), suppose we have a scrollable element that is partially offscreen, i.e. it's "under" the chrome. When we perform display list analysis for scrolling that element, the scrollport is intersected by a bunch of elements in the chrome, which causes the regions to get complicated so we simplify the regions and make some suboptimal decisions.

There is a simple way to fix this: before we call ComputeRepaintRegionForCopy, we can clip the scrollport to reflect any clipping performed by ancestor frames.
Attached patch fixSplinter Review
Attachment #427692 - Flags: review?(dbaron)
Whiteboard: [needs review]
Comment on attachment 427692 [details] [diff] [review]
fix

I was going to say that you should start from mScrollPort instead of the frame's rect... but I guess that's taken care of by the intersecting that you do the very first time through the loop.

The bit about stopping at the display root only affects popups, right?  We'll still correctly handle (post-unification of view trees?) the case of not blitting if there are SVG effects in chrome that contains a content window we're scrolling, right?

r=dbaron
Attachment #427692 - Flags: review?(dbaron) → review+
(In reply to comment #2)
> (From update of attachment 427692 [details] [diff] [review])
> I was going to say that you should start from mScrollPort instead of the
> frame's rect... but I guess that's taken care of by the intersecting that you
> do the very first time through the loop.

Yes, I'll add a comment about that.

> The bit about stopping at the display root only affects popups, right?

Correct.

> We'll still correctly handle (post-unification of view trees?) the case of not
> blitting if there are SVG effects in chrome that contains a content window
> we're scrolling, right?

Yes, because the displayroot is the root frame of the chrome window in that case.
Whiteboard: [needs review] → [needs landing]
I might obsolete this with retained layer scrolling before we actually need it, so I'll hold off on landing it for now.
Whiteboard: [needs landing]
Obsolete now?
Yes!
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: