Remove unnecessary assert in LayoutSVGRoot
In LayoutSVGRoot::mapLocalToContainer we were asserting that the
transform mode was UseTransforms, an assertion that was violated when
the SVG layer was squashed into certain other layers. The assertion
has been commented out for more than a year.
Testing various configurations of transforms and SVG with squashing,
such that the assert would hit, reveals no changes in rendered behavior.
Code inspection suggests that the assertion is unnecessary because
there is no place where SVG code actually checks the mode (although
there are comments that indicate we assume it is set). Furthermore,
SVGLayoutSupport::mapLocalToContainer explicitly sets the mode to
UseTransforms.
Given the lack of impact on behavior and the absence of failures or
bugs since the assertion was disabled, this patch removes the
assertion entirely.
R=pdr
BUG=231541,364901
Review URL: https://codereview.chromium.org/1477463003
Cr-Commit-Position: refs/heads/master@{#361703}
diff --git a/third_party/WebKit/LayoutTests/svg/custom/svg-fixed-position-expected.svg b/third_party/WebKit/LayoutTests/svg/custom/svg-fixed-position-expected.svg
new file mode 100644
index 0000000..a4e3853
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/svg/custom/svg-fixed-position-expected.svg
@@ -0,0 +1,2 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360">
+</svg>
diff --git a/third_party/WebKit/LayoutTests/svg/custom/svg-fixed-position.svg b/third_party/WebKit/LayoutTests/svg/custom/svg-fixed-position.svg
new file mode 100644
index 0000000..7113113
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/svg/custom/svg-fixed-position.svg
@@ -0,0 +1,2 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 360" style="position: fixed;">
+</svg>
diff --git a/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp b/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp
index 2750c93..4755d70 100644
--- a/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp
+++ b/third_party/WebKit/Source/core/layout/svg/LayoutSVGRoot.cpp
@@ -361,9 +361,6 @@
void LayoutSVGRoot::mapLocalToContainer(const LayoutBoxModelObject* paintInvalidationContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed, const PaintInvalidationState* paintInvalidationState) const
{
ASSERT(mode & ~IsFixed); // We should have no fixed content in the SVG layout tree.
- // We used to have this ASSERT here, but we removed it when enabling layer squashing.
- // See http://crbug.com/364901
- // ASSERT(mode & UseTransforms); // mapping a point through SVG w/o respecting trasnforms is useless.
LayoutReplaced::mapLocalToContainer(paintInvalidationContainer, transformState, mode | ApplyContainerFlip, wasFixed, paintInvalidationState);
}