Closed Bug 1494263 Opened 7 years ago Closed 2 years ago

Rework the SVG filter code to obtain filter frames via SVGObserverUtils

Categories

(Core :: SVG, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
120 Branch
Tracking Status
firefox120 --- fixed

People

(Reporter: jwatt, Assigned: jwatt)

References

Details

Attachments

(2 files)

Right now we have a function nsSVGFilterInstance::GetFilterFrame that gets the filter frame using its own single shot IDTracker. This whole setup is really poorly designed. We should only ever be getting SVG referenced frames via SVGObserverUtils to make sure that we set up observers correctly. The observers have already been set up under the SVGObserverUtils::HasValidFilter/HasNoOrValidFilter/HasInvalidFilter calls after all. We should get rid of nsSVGFilterInstance::GetFilterFrame, add a replacement to SVGObserverUtils, and rework the SVG filter code to use that (all the places that create an nsFilterInstance should be passing an nsTArray<nsSVGFilterFrame>& to its ctor). There's a decent chance that cleaning up this mess will fix some of the filter related refcounting bugs that we have.
I'm adding the necessary function to SVGObserverUtils in a separate bug for a refactoring of the SVGObserverUtils filter code.
Severity: normal → S3
Pushed by longsonr@gmail.com: https://hg.mozilla.org/integration/autoland/rev/de2e58be4e20 part 1 - pass filterFrames around rather than getting them again and again r=emilio https://hg.mozilla.org/integration/autoland/rev/4b3dda4d2972 part 2 - try marking some tests as passing now r=emilio
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 120 Branch
Regressions: 1857945
Duplicate of this bug: 1272645
Regressions: 1861736
Regressions: 1868479
Regressions: 1875707
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: