Closed Bug 774095 Opened 10 years ago Closed 10 years ago

Make sure that we call nsSVGEffects::UpdateEffects() on frames that are added after the first reflow

Categories

(Core :: SVG, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla16

People

(Reporter: jwatt, Assigned: jwatt)

References

Details

Attachments

(1 file, 2 obsolete files)

For some reason SVG frames' overflow rects sometimes don't account for filter effects. Still debugging this one.
This happens when frames are added after the first reflow - which apparently can be triggered by a <script> referencing an external file an the top of the doc - and then any filtered SVG frames that come after that never account for filters in their visual overflow rects. Even if the document is subsequently reflowed, or the filtered elements change, or the filter changes, the filter effect is still not accounted for in the visual overflow rect.

The reason that this happens is because nsSVGDisplayContainerFrame::InsertFrames removes NS_FRAME_FIRST_REFLOW from the kid so that nsSVGUtils::ScheduleBoundsUpdate will work when passed the kid, but then forgets to add it back afterwards. That means we never make the nsSVGEffects::UpdateEffects() call in the UpdateBounds implementations since it is guarded by a NS_FRAME_FIRST_REFLOW check.
Summary: Sometimes SVG frames overflow rects do not account for filter effects → Make sure that we call nsSVGEffects::UpdateEffects() on frames that are added after the first reflow
Blocks: 614732
Attached patch patch (obsolete) — Splinter Review
Attachment #642402 - Flags: review?(dholbert)
The unconditional setting of NS_FRAME_FIRST_REFLOW here scares me a little.  Are we guaranteed that NS_FRAME_FIRST_REFLOW will be set on everything in the frame list, when this function is called?

If so, we should assert that (maybe just before we clear that bit).  And if not, we should check for it and only add it back if it was originally set.
Attached patch patch (obsolete) — Splinter Review
Ah, yeah, good point.
Attachment #642402 - Attachment is obsolete: true
Attachment #642402 - Flags: review?(dholbert)
Attachment #642433 - Flags: review?(dholbert)
Attached patch patchSplinter Review
Attachment #642433 - Attachment is obsolete: true
Attachment #642433 - Flags: review?(dholbert)
Attachment #642434 - Flags: review?(dholbert)
Attachment #642434 - Flags: review?(dholbert) → review+
https://hg.mozilla.org/mozilla-central/rev/2cdd7ca5a588
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.