DescriptionAvoid 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}
Patch Set 1 #Patch Set 2 : - #
Messages
Total messages: 20 (12 generated)
|