Only call SVGObserverUtils::UpdateEffects on FirstContinuationOrIBSplitSibling frames

RESOLVED FIXED in Firefox 64

Status

()

enhancement
P3
normal
RESOLVED FIXED
9 months ago
6 months ago

People

(Reporter: jwatt, Assigned: jwatt)

Tracking

(Blocks 1 bug)

unspecified
mozilla64
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox64 fixed)

Details

Attachments

(1 attachment)

Assignee

Description

9 months ago
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.)
Assignee

Comment 2

9 months ago
(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+

Comment 4

9 months ago
Pushed by jwatt@jwatt.org:
https://hg.mozilla.org/integration/mozilla-inbound/rev/0c399277cee5
Only call SVGObserverUtils::UpdateEffects on FirstContinuationOrIBSplitSibling frames. r=longsonr

Comment 5

9 months ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/0c399277cee5
Status: ASSIGNED → RESOLVED
Closed: 9 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
Assignee

Updated

6 months ago
Blocks: 1514897
You need to log in before you can comment on or make changes to this bug.