Closed Bug 767697 Opened 12 years ago Closed 12 years ago

Stop invalidating rendering observers of ancestors of SVG frames that only render by reference

Categories

(Core :: SVG, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla16

People

(Reporter: jwatt, Assigned: jwatt)

References

Details

(Keywords: perf)

Attachments

(1 file)

While addressing bug 767647 comment 2, I discovered test failures due to nsSVGClipPathFrame::AttributeChanged not invalidating its rendering observers when its transform changes. I then also realized that we're wastefully using nsSVGEffects::InvalidateRenderingObservers to invalidate for changes on SVG frames like clipPath that are only rendered by reference. This is completely wasteful, since they can never affect the rendering of their ancestors by virtue of being a descendant of their ancestors. We should be using nsSVGEffects::InvalidateDirectRenderingObservers instead.
Blocks: 767647
Attached patch patchSplinter Review
Attachment #636077 - Flags: review?(longsonr)
I suppose I should really separate out the missing call from the wrong calls. I filed bug 767701 for the former.
Attachment #636077 - Flags: review?(longsonr) → review+
Pushed https://hg.mozilla.org/integration/mozilla-inbound/rev/081ae9cc097b
Target Milestone: --- → mozilla16
https://hg.mozilla.org/mozilla-central/rev/081ae9cc097b
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.