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.
Created attachment 636077 [details] [diff] [review]
I suppose I should really separate out the missing call from the wrong calls. I filed bug 767701 for the former.