SVG renderers have a bunch of broken/wrong extra code Mostly due to my historical confusions about the render tree and some methods not being removed after classes were split. RenderSVGRoot is an RenderBox and should just use all the standard RenderBox methods for inspector and repaint rects. RenderSVGContainer is *not* a RenderBox (any more) and thus doesn't need lineHeight or width/height or calcBounds. RenderSVGViewportContainer had some broken code which tried to see if the click was inside the container at all, but it was using width/height metrics based off of the containing block (from calcWidth) which is wrong!
Created attachment 29507 [details] Remove unneeded broken code from SVG renderers WebCore/ChangeLog | 34 ++++++++++++++ WebCore/rendering/RenderSVGContainer.cpp | 54 +--------------------- WebCore/rendering/RenderSVGContainer.h | 16 +------ WebCore/rendering/RenderSVGRoot.cpp | 34 -------------- WebCore/rendering/RenderSVGRoot.h | 8 +--- WebCore/rendering/RenderSVGViewportContainer.cpp | 16 +------ 6 files changed, 40 insertions(+), 122 deletions(-)
Anyone with passing knowledge of the render tree should be able to review this. It's a pretty straightforward patch. Layout tests pass.
Comment on attachment 29507 [details] Remove unneeded broken code from SVG renderers r=me
Committing to http://svn.webkit.org/repository/webkit/trunk ... M WebCore/ChangeLog M WebCore/rendering/RenderSVGContainer.cpp M WebCore/rendering/RenderSVGContainer.h M WebCore/rendering/RenderSVGRoot.cpp M WebCore/rendering/RenderSVGRoot.h M WebCore/rendering/RenderSVGViewportContainer.cpp Committed r42554