Bug 1495246. Only call SVGObserverUtils::UpdateEffects on FirstContinuationOrIBSplitSibling frames. r?longsonr
46 bytes, text/x-phabricator-request
|Details | Review|
In bug 828312, dbaron landed a patch series to "making change hints apply across all continuations and block-in-inline siblings". One of the patched for that bug did that for nsChangeHint_UpdateEffects: https://hg.mozilla.org/mozilla-central/rev/c9e8dbb04c43 Unfortunately, that's wrong for this specific hint. We only need one observer per observing *element*, and creating a new observer object for each frame created for that element would be wasteful. For that reason the SVG rendering observer code stores and fetches SVG rendering observers to/from only from the first continuation/block-in-inline-split frame (using FirstContinuationOrIBSplitSibling). The change made by the revision above broke that invariant, and means that we can create a lot of redundant observers and do a lot of redundant work for non-SVG frames with SVG effects applied to them. (The nsChangeHint_SchedulePaint hint needs to be handled for every single frame of course - as it is - but that's handled separately.)
(Unsurprisingly, this passes Try, including the regression tests that were added for bug 828312.)
Comment on attachment 9013116 [details] Bug 1495246. Only call SVGObserverUtils::UpdateEffects on FirstContinuationOrIBSplitSibling frames. r?longsonr Robert Longson [:longsonr] has approved the revision.
Attachment #9013116 - Flags: review+
Pushed by firstname.lastname@example.org: https://hg.mozilla.org/integration/mozilla-inbound/rev/0c399277cee5 Only call SVGObserverUtils::UpdateEffects on FirstContinuationOrIBSplitSibling frames. r=longsonr
You need to log in before you can comment on or make changes to this bug.