DescriptionRevert of Avoid special handling of LayoutSVGForeignObject about its paint offset (patchset #2 id:20001 of https://codereview.chromium.org/2512493003/ )
Reason for revert:
It is incorrect to treat the HTML viewport defined by a LayoutSVGForeignObject
as the "local SVG coordinate space", because it's not the space that the local svg
transform, clip path and filters apply. This CL is wrong because it treats the wrong LayoutSVGForeignObject::localToParentSVGTransform() as correct and used a wrong way
to remedy that. This CL breaks clip path on foreignObject because the clip path is
applied in wrong space.
Original issue's description:
> Avoid special handling of LayoutSVGForeignObject about its paint offset
>
> Previously we painted a LayoutSVGForeignObject in the following way:
> 1 Issue transform and clip based on localSVGTransform;
> 2 Call BlockFlowPainter::paint with zero LayoutPoint()
> 3 BlockFlowPainter::paint uses the object's location() as the actual
> paint offset.
>
> The above painting method also required us to generate the same paint
> properties in PaintPropertyTreeBuilder.
>
> This CL change painting of LayoutSVGForiegnObject in a new way:
> 1 Issue transform and clip based on localToSVGParentTransform which
> includes the viewport offset;
> 2 Call BlockFlowPainter::paint with -location() as the paint offset;
> 3 BlockFlowPainter::paint then add the object's location() to the
> paint offset which results a zero paint offset.
>
> With the new method, LayoutSVGForeignObject behaves more like a normal
> SVG object so we can remove some special handling of it.
>
> BUG=666416
>
> x
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
>
> Committed: https://crrev.com/74454dfeaa27a9f696824e0a2a1548175d2e26ab
> Cr-Commit-Position: refs/heads/master@{#433080}
TBR=pdr@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=666416
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Committed: https://crrev.com/a85757755e1db65b954b4a40283ad5660ae84630
Cr-Commit-Position: refs/heads/master@{#433456}
Patch Set 1 #Patch Set 2 : Rebase (with good parts kept) #
Messages
Total messages: 12 (8 generated)
|