Closed
Bug 774095
Opened 11 years ago
Closed 11 years ago
Make sure that we call nsSVGEffects::UpdateEffects() on frames that are added after the first reflow
Categories
(Core :: SVG, defect)
Core
SVG
Tracking
()
RESOLVED
FIXED
mozilla16
People
(Reporter: jwatt, Assigned: jwatt)
References
Details
Attachments
(1 file, 2 obsolete files)
1.56 KB,
patch
|
dholbert
:
review+
|
Details | Diff | Splinter Review |
For some reason SVG frames' overflow rects sometimes don't account for filter effects. Still debugging this one.
![]() |
Assignee | |
Comment 1•11 years ago
|
||
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.
![]() |
Assignee | |
Updated•11 years ago
|
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
![]() |
Assignee | |
Comment 2•11 years ago
|
||
Attachment #642402 -
Flags: review?(dholbert)
Comment 3•11 years ago
|
||
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.
![]() |
Assignee | |
Comment 4•11 years ago
|
||
Ah, yeah, good point.
Attachment #642402 -
Attachment is obsolete: true
Attachment #642402 -
Flags: review?(dholbert)
Attachment #642433 -
Flags: review?(dholbert)
![]() |
Assignee | |
Comment 5•11 years ago
|
||
Attachment #642433 -
Attachment is obsolete: true
Attachment #642433 -
Flags: review?(dholbert)
![]() |
Assignee | |
Updated•11 years ago
|
Attachment #642434 -
Flags: review?(dholbert)
Updated•11 years ago
|
Attachment #642434 -
Flags: review?(dholbert) → review+
![]() |
Assignee | |
Comment 6•11 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/2cdd7ca5a588
Target Milestone: --- → mozilla16
Comment 7•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/2cdd7ca5a588
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•