Invalidation fixes for elements with SVG filters

RESOLVED FIXED in mozilla26



5 years ago
5 years ago


(Reporter: mstange, Assigned: mstange)



Firefox Tracking Flags

(Not tracked)



(5 attachments)



5 years ago
Created attachment 800097 [details] [diff] [review]
part1, v1: apply the scroll offset transform to inactive layer managers for LAYER_SVG_EFFECTS, too

This fixes most invalidations on attachment 795171 [details] and is what Matt Woodrow suggested in bug 853699 comment 10.
Attachment #800097 - Flags: review?(roc)

Comment 1

5 years ago
Created attachment 800100 [details] [diff] [review]
part 2, v1: use consistent rounding for the scroll offset transform

This fixes invalidations that occurred on attachment 795171 [details] when scrolling it from positive into negative offsets.
Attachment #800100 - Flags: review?(roc)

Comment 2

5 years ago
Created attachment 800101 [details] [diff] [review]
part 3, v1: don't fluff out invalidation region from inactive layer manager

Sometimes, when scrolling an a page with an <svg> made up of multiple filtered elements, scrolling would invalidate 1x1 pixel boxes for each element, and this GetBounds() call would cause many more pixels to be repainted.
Attachment #800101 - Flags: review?(roc)

Comment 3

5 years ago
Created attachment 800107 [details] [diff] [review]
part 4, v1: empty rects shouldn't cause any invalidation

There are several places under nsSVGIntegrationUtils::AdjustInvalidAreaForSVGEffects where we convert rects between coordinate systems, round the result, and end up with a non-empty rect when the original rect was empty.
Attachment #800107 - Flags: review?(roc)

Comment 4

5 years ago
Created attachment 800124 [details] [diff] [review]
part 5, v1: more empty rect guards

Not sure if these are necessary, but I guess they wouldn't hurt.
Attachment #800124 - Flags: review?(roc)


5 years ago
Blocks: 847467
You need to log in before you can comment on or make changes to this bug.