Use the same bounding box computation even with fallback path

LayoutSVGShape::UpdateShapeFromElement() creates a Path for the shape as
well as update the bounding box (fill/object and stroke.)
When we fallback to using a Path rather than the fast path
representation for the shape, we can still use the same code for
computing the bounding boxes. So instead of calling LayoutSVGShape's
UpdateShapeFromElement from LayoutSVGRect and LayoutSVGEllipse, just
call CreatePath() in the codepaths that transitions to the fallback/Path
codepath. Non-scaling stroke still require a "precise" stroke bbox.

This should make stroke bounding boxes for <rect>, <circle> and
<ellipse> tighter again.

Bug: 435097
Change-Id: I5361689371cb78eb405e0403f3be165bd254aab2
Reviewed-on: https://chromium-review.googlesource.com/779460
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#518880}
3 files changed