Diff
Modified: trunk/Source/WebCore/ChangeLog (261774 => 261775)
--- trunk/Source/WebCore/ChangeLog 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/ChangeLog 2020-05-16 02:14:29 UTC (rev 261775)
@@ -1,5 +1,57 @@
2020-05-15 Simon Fraser <simon.fra...@apple.com>
+ Rename the mapLocalToContainer() container argument, since it's not just used for repaint
+ https://bugs.webkit.org/show_bug.cgi?id=211974
+
+ Reviewed by Zalan Bujtas.
+
+ mapLocalToContainer() is a generic geometry mapping function, and not just used for repaint,
+ so rename the "repaintContainer" argument to "ancestorContainer".
+
+ Also fix some weirdly named variables in RenderMultiColumnFlow.
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::mapLocalToContainer const):
+ * rendering/RenderBox.h:
+ * rendering/RenderFragmentedFlow.cpp:
+ (WebCore::RenderFragmentedFlow::mapLocalToContainer const):
+ * rendering/RenderFragmentedFlow.h:
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::mapLocalToContainer const):
+ (WebCore::RenderInline::pushMappingToContainer const):
+ * rendering/RenderMultiColumnFlow.cpp:
+ (WebCore::RenderMultiColumnFlow::addFragmentToThread):
+ (WebCore::RenderMultiColumnFlow::mapFromFlowToFragment const):
+ (WebCore::RenderMultiColumnFlow::physicalTranslationOffsetFromFlowToFragment const):
+ (WebCore::RenderMultiColumnFlow::physicalTranslationFromFlowToFragment const):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::mapLocalToContainer const):
+ (WebCore::RenderObject::localToContainerQuad const):
+ (WebCore::RenderObject::localToContainerPoint const):
+ * rendering/RenderObject.h:
+ * rendering/RenderView.cpp:
+ (WebCore::RenderView::mapLocalToContainer const):
+ * rendering/svg/RenderSVGForeignObject.cpp:
+ (WebCore::RenderSVGForeignObject::mapLocalToContainer const):
+ * rendering/svg/RenderSVGForeignObject.h:
+ * rendering/svg/RenderSVGInline.cpp:
+ (WebCore::RenderSVGInline::mapLocalToContainer const):
+ * rendering/svg/RenderSVGInline.h:
+ * rendering/svg/RenderSVGModelObject.cpp:
+ (WebCore::RenderSVGModelObject::mapLocalToContainer const):
+ * rendering/svg/RenderSVGModelObject.h:
+ * rendering/svg/RenderSVGRoot.cpp:
+ (WebCore::RenderSVGRoot::mapLocalToContainer const):
+ * rendering/svg/RenderSVGRoot.h:
+ * rendering/svg/RenderSVGText.cpp:
+ (WebCore::RenderSVGText::mapLocalToContainer const):
+ * rendering/svg/RenderSVGText.h:
+ * rendering/svg/SVGRenderSupport.cpp:
+ (WebCore::SVGRenderSupport::mapLocalToContainer):
+ * rendering/svg/SVGRenderSupport.h:
+
+2020-05-15 Simon Fraser <simon.fra...@apple.com>
+
REGRESSION (r249091): Can't click on a video in the second column of a paginated web view
https://bugs.webkit.org/show_bug.cgi?id=211973
<rdar://problem/61418775>
Modified: trunk/Source/WebCore/rendering/RenderBox.cpp (261774 => 261775)
--- trunk/Source/WebCore/rendering/RenderBox.cpp 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/RenderBox.cpp 2020-05-16 02:14:29 UTC (rev 261775)
@@ -2041,12 +2041,12 @@
return cb->adjustContentBoxLogicalHeightForBoxSizing(LayoutUnit(logicalHeightLength.value()));
}
-void RenderBox::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
+void RenderBox::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
{
- if (repaintContainer == this)
+ if (ancestorContainer == this)
return;
- if (!repaintContainer && view().frameView().layoutContext().isPaintOffsetCacheEnabled()) {
+ if (!ancestorContainer && view().frameView().layoutContext().isPaintOffsetCacheEnabled()) {
auto* layoutState = view().frameView().layoutContext().layoutState();
LayoutSize offset = layoutState->paintOffset() + locationOffset();
if (style().hasInFlowPosition() && layer())
@@ -2056,7 +2056,7 @@
}
bool containerSkipped;
- RenderElement* container = this->container(repaintContainer, containerSkipped);
+ RenderElement* container = this->container(ancestorContainer, containerSkipped);
if (!container)
return;
@@ -2082,9 +2082,9 @@
transformState.move(containerOffset.width(), containerOffset.height(), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
if (containerSkipped) {
- // There can't be a transform between repaintContainer and o, because transforms create containers, so it should be safe
- // to just subtract the delta between the repaintContainer and o.
- LayoutSize containerOffset = repaintContainer->offsetFromAncestorContainer(*container);
+ // There can't be a transform between ancestorContainer and o, because transforms create containers, so it should be safe
+ // to just subtract the delta between the ancestorContainer and o.
+ LayoutSize containerOffset = ancestorContainer->offsetFromAncestorContainer(*container);
transformState.move(-containerOffset.width(), -containerOffset.height(), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
return;
}
@@ -2091,7 +2091,7 @@
mode &= ~ApplyContainerFlip;
- container->mapLocalToContainer(repaintContainer, transformState, mode, wasFixed);
+ container->mapLocalToContainer(ancestorContainer, transformState, mode, wasFixed);
}
const RenderObject* RenderBox::pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const
Modified: trunk/Source/WebCore/rendering/RenderBox.h (261774 => 261775)
--- trunk/Source/WebCore/rendering/RenderBox.h 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/RenderBox.h 2020-05-16 02:14:29 UTC (rev 261775)
@@ -684,7 +684,7 @@
virtual bool shouldComputeSizeAsReplaced() const { return isReplaced() && !isInlineBlockOrInlineTable(); }
- void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject*, RenderGeometryMap&) const override;
void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) const override;
Modified: trunk/Source/WebCore/rendering/RenderFragmentedFlow.cpp (261774 => 261775)
--- trunk/Source/WebCore/rendering/RenderFragmentedFlow.cpp 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/RenderFragmentedFlow.cpp 2020-05-16 02:14:29 UTC (rev 261775)
@@ -909,9 +909,9 @@
return currentBlock->isHorizontalWritingMode() ? blockRect.y() : blockRect.x();
}
-void RenderFragmentedFlow::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
+void RenderFragmentedFlow::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
{
- if (this == repaintContainer)
+ if (this == ancestorContainer)
return;
if (RenderFragmentContainer* fragment = mapFromFlowToFragment(transformState)) {
@@ -920,7 +920,7 @@
// If the repaint container is nullptr, we have to climb up to the RenderView, otherwise swap
// it with the fragment's repaint container.
- repaintContainer = repaintContainer ? fragment->containerForRepaint() : nullptr;
+ ancestorContainer = ancestorContainer ? fragment->containerForRepaint() : nullptr;
if (RenderFragmentedFlow* fragmentFragmentedFlow = fragment->enclosingFragmentedFlow()) {
RenderFragmentContainer* startFragment = nullptr;
@@ -927,12 +927,12 @@
RenderFragmentContainer* endFragment = nullptr;
if (fragmentFragmentedFlow->getFragmentRangeForBox(fragment, startFragment, endFragment)) {
CurrentRenderFragmentContainerMaintainer fragmentMaintainer(*startFragment);
- fragmentObject->mapLocalToContainer(repaintContainer, transformState, mode, wasFixed);
+ fragmentObject->mapLocalToContainer(ancestorContainer, transformState, mode, wasFixed);
return;
}
}
- fragmentObject->mapLocalToContainer(repaintContainer, transformState, mode, wasFixed);
+ fragmentObject->mapLocalToContainer(ancestorContainer, transformState, mode, wasFixed);
}
}
Modified: trunk/Source/WebCore/rendering/RenderFragmentedFlow.h (261774 => 261775)
--- trunk/Source/WebCore/rendering/RenderFragmentedFlow.h 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/RenderFragmentedFlow.h 2020-05-16 02:14:29 UTC (rev 261775)
@@ -193,7 +193,7 @@
void clearLinesToFragmentMap();
void willBeDestroyed() override;
- void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
void updateFragmentsFragmentedFlowPortionRect();
bool shouldRepaint(const LayoutRect&) const;
Modified: trunk/Source/WebCore/rendering/RenderInline.cpp (261774 => 261775)
--- trunk/Source/WebCore/rendering/RenderInline.cpp 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/RenderInline.cpp 2020-05-16 02:14:29 UTC (rev 261775)
@@ -949,12 +949,12 @@
return offset;
}
-void RenderInline::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
+void RenderInline::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
{
- if (repaintContainer == this)
+ if (ancestorContainer == this)
return;
- if (view().frameView().layoutContext().isPaintOffsetCacheEnabled() && !repaintContainer) {
+ if (view().frameView().layoutContext().isPaintOffsetCacheEnabled() && !ancestorContainer) {
auto* layoutState = view().frameView().layoutContext().layoutState();
LayoutSize offset = layoutState->paintOffset();
if (style().hasInFlowPosition() && layer())
@@ -964,7 +964,7 @@
}
bool containerSkipped;
- RenderElement* container = this->container(repaintContainer, containerSkipped);
+ RenderElement* container = this->container(ancestorContainer, containerSkipped);
if (!container)
return;
@@ -987,14 +987,14 @@
transformState.move(containerOffset.width(), containerOffset.height(), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
if (containerSkipped) {
- // There can't be a transform between repaintContainer and o, because transforms create containers, so it should be safe
- // to just subtract the delta between the repaintContainer and o.
- LayoutSize containerOffset = repaintContainer->offsetFromAncestorContainer(*container);
+ // There can't be a transform between ancestorContainer and o, because transforms create containers, so it should be safe
+ // to just subtract the delta between the ancestorContainer and o.
+ LayoutSize containerOffset = ancestorContainer->offsetFromAncestorContainer(*container);
transformState.move(-containerOffset.width(), -containerOffset.height(), preserve3D ? TransformState::AccumulateTransform : TransformState::FlattenTransform);
return;
}
- container->mapLocalToContainer(repaintContainer, transformState, mode, wasFixed);
+ container->mapLocalToContainer(ancestorContainer, transformState, mode, wasFixed);
}
const RenderObject* RenderInline::pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const
@@ -1008,8 +1008,8 @@
LayoutSize adjustmentForSkippedAncestor;
if (ancestorSkipped) {
- // There can't be a transform between repaintContainer and o, because transforms create containers, so it should be safe
- // to just subtract the delta between the ancestor and o.
+ // There can't be a transform between ancestorToStopAt and container, because transforms create containers, so it should be safe
+ // to just subtract the delta between the ancestor and container.
adjustmentForSkippedAncestor = -ancestorToStopAt->offsetFromAncestorContainer(*container);
}
Modified: trunk/Source/WebCore/rendering/RenderMultiColumnFlow.cpp (261774 => 261775)
--- trunk/Source/WebCore/rendering/RenderMultiColumnFlow.cpp 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/RenderMultiColumnFlow.cpp 2020-05-16 02:14:29 UTC (rev 261775)
@@ -135,9 +135,9 @@
m_lastSetWorkedOn = nullptr;
}
-void RenderMultiColumnFlow::addFragmentToThread(RenderFragmentContainer* RenderFragmentContainer)
+void RenderMultiColumnFlow::addFragmentToThread(RenderFragmentContainer* fragmentContainer)
{
- auto* columnSet = downcast<RenderMultiColumnSet>(RenderFragmentContainer);
+ auto* columnSet = downcast<RenderMultiColumnSet>(fragmentContainer);
if (RenderMultiColumnSet* nextSet = columnSet->nextSiblingMultiColumnSet()) {
RenderFragmentContainerList::iterator it = m_fragmentList.find(nextSet);
ASSERT(it != m_fragmentList.end());
@@ -144,7 +144,7 @@
m_fragmentList.insertBefore(it, columnSet);
} else
m_fragmentList.add(columnSet);
- RenderFragmentContainer->setIsValid(true);
+ fragmentContainer->setIsValid(true);
}
void RenderMultiColumnFlow::willBeRemovedFromTree()
@@ -342,17 +342,17 @@
// for now we just take the center of the mapped enclosing box and map it to a column.
LayoutPoint centerPoint = boxRect.center();
LayoutUnit centerLogicalOffset = isHorizontalWritingMode() ? centerPoint.y() : centerPoint.x();
- RenderFragmentContainer* RenderFragmentContainer = fragmentAtBlockOffset(this, centerLogicalOffset, true);
- if (!RenderFragmentContainer)
+ auto* fragmentContainer = fragmentAtBlockOffset(this, centerLogicalOffset, true);
+ if (!fragmentContainer)
return nullptr;
- transformState.move(physicalTranslationOffsetFromFlowToFragment(RenderFragmentContainer, centerLogicalOffset));
- return RenderFragmentContainer;
+ transformState.move(physicalTranslationOffsetFromFlowToFragment(fragmentContainer, centerLogicalOffset));
+ return fragmentContainer;
}
-LayoutSize RenderMultiColumnFlow::physicalTranslationOffsetFromFlowToFragment(const RenderFragmentContainer* RenderFragmentContainer, const LayoutUnit logicalOffset) const
+LayoutSize RenderMultiColumnFlow::physicalTranslationOffsetFromFlowToFragment(const RenderFragmentContainer* fragmentContainer, const LayoutUnit logicalOffset) const
{
// Now that we know which multicolumn set we hit, we need to get the appropriate translation offset for the column.
- const auto* columnSet = downcast<RenderMultiColumnSet>(RenderFragmentContainer);
+ const auto* columnSet = downcast<RenderMultiColumnSet>(fragmentContainer);
LayoutPoint translationOffset = columnSet->columnTranslationForOffset(logicalOffset);
// Now we know how we want the rect to be translated into the fragment. At this point we're converting
@@ -385,17 +385,17 @@
// Now get the fragment that we are in.
LayoutUnit logicalOffset = isHorizontalWritingMode() ? logicalPoint.y() : logicalPoint.x();
- RenderFragmentContainer* RenderFragmentContainer = fragmentAtBlockOffset(this, logicalOffset, true);
- if (!RenderFragmentContainer)
+ RenderFragmentContainer* fragmentContainer = fragmentAtBlockOffset(this, logicalOffset, true);
+ if (!fragmentContainer)
return nullptr;
// Translate to the coordinate space of the fragment.
- LayoutSize translationOffset = physicalTranslationOffsetFromFlowToFragment(RenderFragmentContainer, logicalOffset);
+ LayoutSize translationOffset = physicalTranslationOffsetFromFlowToFragment(fragmentContainer, logicalOffset);
// Now shift the physical point into the fragment's coordinate space.
physicalPoint += translationOffset;
- return RenderFragmentContainer;
+ return fragmentContainer;
}
bool RenderMultiColumnFlow::isPageLogicalHeightKnown() const
Modified: trunk/Source/WebCore/rendering/RenderObject.cpp (261774 => 261775)
--- trunk/Source/WebCore/rendering/RenderObject.cpp 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/RenderObject.cpp 2020-05-16 02:14:29 UTC (rev 261775)
@@ -1236,9 +1236,9 @@
return transformState.lastPlanarQuad();
}
-void RenderObject::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
+void RenderObject::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
{
- if (repaintContainer == this)
+ if (ancestorContainer == this)
return;
auto* parent = this->parent();
@@ -1256,7 +1256,7 @@
if (is<RenderBox>(*parent))
transformState.move(-toLayoutSize(downcast<RenderBox>(*parent).scrollPosition()));
- parent->mapLocalToContainer(repaintContainer, transformState, mode, wasFixed);
+ parent->mapLocalToContainer(ancestorContainer, transformState, mode, wasFixed);
}
const RenderObject* RenderObject::pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const
@@ -1322,21 +1322,21 @@
#endif
}
-FloatQuad RenderObject::localToContainerQuad(const FloatQuad& localQuad, const RenderLayerModelObject* repaintContainer, MapCoordinatesFlags mode, bool* wasFixed) const
+FloatQuad RenderObject::localToContainerQuad(const FloatQuad& localQuad, const RenderLayerModelObject* container, MapCoordinatesFlags mode, bool* wasFixed) const
{
// Track the point at the center of the quad's bounding box. As mapLocalToContainer() calls offsetFromContainer(),
// it will use that point as the reference point to decide which column's transform to apply in multiple-column blocks.
TransformState transformState(TransformState::ApplyTransformDirection, localQuad.boundingBox().center(), localQuad);
- mapLocalToContainer(repaintContainer, transformState, mode | ApplyContainerFlip, wasFixed);
+ mapLocalToContainer(container, transformState, mode | ApplyContainerFlip, wasFixed);
transformState.flatten();
return transformState.lastPlanarQuad();
}
-FloatPoint RenderObject::localToContainerPoint(const FloatPoint& localPoint, const RenderLayerModelObject* repaintContainer, MapCoordinatesFlags mode, bool* wasFixed) const
+FloatPoint RenderObject::localToContainerPoint(const FloatPoint& localPoint, const RenderLayerModelObject* container, MapCoordinatesFlags mode, bool* wasFixed) const
{
TransformState transformState(TransformState::ApplyTransformDirection, localPoint);
- mapLocalToContainer(repaintContainer, transformState, mode | ApplyContainerFlip, wasFixed);
+ mapLocalToContainer(container, transformState, mode | ApplyContainerFlip, wasFixed);
transformState.flatten();
return transformState.lastPlanarPoint();
Modified: trunk/Source/WebCore/rendering/RenderObject.h (261774 => 261775)
--- trunk/Source/WebCore/rendering/RenderObject.h 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/RenderObject.h 2020-05-16 02:14:29 UTC (rev 261775)
@@ -534,8 +534,8 @@
FloatQuad absoluteToLocalQuad(const FloatQuad&, MapCoordinatesFlags = UseTransforms) const;
// Convert a local quad into the coordinate system of container, taking transforms into account.
- WEBCORE_EXPORT FloatQuad localToContainerQuad(const FloatQuad&, const RenderLayerModelObject* repaintContainer, MapCoordinatesFlags = UseTransforms, bool* wasFixed = nullptr) const;
- WEBCORE_EXPORT FloatPoint localToContainerPoint(const FloatPoint&, const RenderLayerModelObject* repaintContainer, MapCoordinatesFlags = UseTransforms, bool* wasFixed = nullptr) const;
+ WEBCORE_EXPORT FloatQuad localToContainerQuad(const FloatQuad&, const RenderLayerModelObject* container, MapCoordinatesFlags = UseTransforms, bool* wasFixed = nullptr) const;
+ WEBCORE_EXPORT FloatPoint localToContainerPoint(const FloatPoint&, const RenderLayerModelObject* container, MapCoordinatesFlags = UseTransforms, bool* wasFixed = nullptr) const;
// Return the offset from the container() renderer (excluding transforms). In multi-column layout,
// different offsets apply at different points, so return the offset that applies to the given point.
Modified: trunk/Source/WebCore/rendering/RenderView.cpp (261774 => 261775)
--- trunk/Source/WebCore/rendering/RenderView.cpp 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/RenderView.cpp 2020-05-16 02:14:29 UTC (rev 261775)
@@ -238,17 +238,17 @@
return clientLogicalHeight();
}
-void RenderView::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
+void RenderView::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
{
// If a container was specified, and was not nullptr or the RenderView,
// then we should have found it by now.
- ASSERT_ARG(repaintContainer, !repaintContainer || repaintContainer == this);
+ ASSERT_ARG(ancestorContainer, !ancestorContainer || ancestorContainer == this);
ASSERT_UNUSED(wasFixed, !wasFixed || *wasFixed == (mode & IsFixed));
if (mode & IsFixed)
transformState.move(toLayoutSize(frameView().scrollPositionRespectingCustomFixedPosition()));
- if (!repaintContainer && mode & UseTransforms && shouldUseTransformFromContainer(nullptr)) {
+ if (!ancestorContainer && mode & UseTransforms && shouldUseTransformFromContainer(nullptr)) {
TransformationMatrix t;
getTransformFromContainer(nullptr, LayoutSize(), t);
transformState.applyTransform(t);
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp (261774 => 261775)
--- trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp 2020-05-16 02:14:29 UTC (rev 261775)
@@ -204,9 +204,9 @@
return false;
}
-void RenderSVGForeignObject::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const
+void RenderSVGForeignObject::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const
{
- SVGRenderSupport::mapLocalToContainer(*this, repaintContainer, transformState, wasFixed);
+ SVGRenderSupport::mapLocalToContainer(*this, ancestorContainer, transformState, wasFixed);
}
const RenderObject* RenderSVGForeignObject::pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.h (261774 => 261775)
--- trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.h 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.h 2020-05-16 02:14:29 UTC (rev 261775)
@@ -53,7 +53,7 @@
bool nodeAtFloatPoint(const HitTestRequest&, HitTestResult&, const FloatPoint& pointInParent, HitTestAction) override;
bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) override;
- void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
void setNeedsTransformUpdate() override { m_needsTransformUpdate = true; }
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGInline.cpp (261774 => 261775)
--- trunk/Source/WebCore/rendering/svg/RenderSVGInline.cpp 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGInline.cpp 2020-05-16 02:14:29 UTC (rev 261775)
@@ -80,9 +80,9 @@
return SVGRenderSupport::computeFloatVisibleRectInContainer(*this, rect, container, context);
}
-void RenderSVGInline::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const
+void RenderSVGInline::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const
{
- SVGRenderSupport::mapLocalToContainer(*this, repaintContainer, transformState, wasFixed);
+ SVGRenderSupport::mapLocalToContainer(*this, ancestorContainer, transformState, wasFixed);
}
const RenderObject* RenderSVGInline::pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGInline.h (261774 => 261775)
--- trunk/Source/WebCore/rendering/svg/RenderSVGInline.h 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGInline.h 2020-05-16 02:14:29 UTC (rev 261775)
@@ -52,7 +52,7 @@
LayoutRect clippedOverflowRectForRepaint(const RenderLayerModelObject* repaintContainer) const final;
Optional<FloatRect> computeFloatVisibleRectInContainer(const FloatRect&, const RenderLayerModelObject* container, VisibleRectContext) const final;
- void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const final;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const final;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const final;
void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const final;
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp (261774 => 261775)
--- trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.cpp 2020-05-16 02:14:29 UTC (rev 261775)
@@ -57,9 +57,9 @@
return SVGRenderSupport::computeFloatVisibleRectInContainer(*this, rect, container, context);
}
-void RenderSVGModelObject::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const
+void RenderSVGModelObject::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const
{
- SVGRenderSupport::mapLocalToContainer(*this, repaintContainer, transformState, wasFixed);
+ SVGRenderSupport::mapLocalToContainer(*this, ancestorContainer, transformState, wasFixed);
}
const RenderObject* RenderSVGModelObject::pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.h (261774 => 261775)
--- trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.h 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGModelObject.h 2020-05-16 02:14:29 UTC (rev 261775)
@@ -53,7 +53,7 @@
void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) const final;
void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const override;
- void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const final;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const final;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const final;
void styleDidChange(StyleDifference, const RenderStyle* oldStyle) override;
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp (261774 => 261775)
--- trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp 2020-05-16 02:14:29 UTC (rev 261775)
@@ -387,12 +387,12 @@
// This method expects local CSS box coordinates.
// Callers with local SVG viewport coordinates should first apply the localToBorderBoxTransform
// to convert from SVG viewport coordinates to local CSS box coordinates.
-void RenderSVGRoot::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
+void RenderSVGRoot::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
{
ASSERT(mode & ~IsFixed); // We should have no fixed content in the SVG rendering tree.
ASSERT(mode & UseTransforms); // mapping a point through SVG w/o respecting trasnforms is useless.
- RenderReplaced::mapLocalToContainer(repaintContainer, transformState, mode | ApplyContainerFlip, wasFixed);
+ RenderReplaced::mapLocalToContainer(ancestorContainer, transformState, mode | ApplyContainerFlip, wasFixed);
}
const RenderObject* RenderSVGRoot::pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGRoot.h (261774 => 261775)
--- trunk/Source/WebCore/rendering/svg/RenderSVGRoot.h 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGRoot.h 2020-05-16 02:14:29 UTC (rev 261775)
@@ -94,7 +94,7 @@
LayoutRect clippedOverflowRectForRepaint(const RenderLayerModelObject* repaintContainer) const override;
Optional<FloatRect> computeFloatVisibleRectInContainer(const FloatRect&, const RenderLayerModelObject* container, VisibleRectContext) const override;
- void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
bool canBeSelectionLeaf() const override { return false; }
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp (261774 => 261775)
--- trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp 2020-05-16 02:14:29 UTC (rev 261775)
@@ -105,9 +105,9 @@
return SVGRenderSupport::computeFloatVisibleRectInContainer(*this, rect, container, context);
}
-void RenderSVGText::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const
+void RenderSVGText::mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState& transformState, MapCoordinatesFlags, bool* wasFixed) const
{
- SVGRenderSupport::mapLocalToContainer(*this, repaintContainer, transformState, wasFixed);
+ SVGRenderSupport::mapLocalToContainer(*this, ancestorContainer, transformState, wasFixed);
}
const RenderObject* RenderSVGText::pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const
Modified: trunk/Source/WebCore/rendering/svg/RenderSVGText.h (261774 => 261775)
--- trunk/Source/WebCore/rendering/svg/RenderSVGText.h 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGText.h 2020-05-16 02:14:29 UTC (rev 261775)
@@ -81,7 +81,7 @@
Optional<LayoutRect> computeVisibleRectInContainer(const LayoutRect&, const RenderLayerModelObject* container, VisibleRectContext) const override;
Optional<FloatRect> computeFloatVisibleRectInContainer(const FloatRect&, const RenderLayerModelObject* container, VisibleRectContext) const override;
- void mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
+ void mapLocalToContainer(const RenderLayerModelObject* ancestorContainer, TransformState&, MapCoordinatesFlags, bool* wasFixed) const override;
const RenderObject* pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&) const override;
void willBeDestroyed() override;
Modified: trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp (261774 => 261775)
--- trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp 2020-05-16 02:14:29 UTC (rev 261775)
@@ -100,7 +100,7 @@
return parent;
}
-void SVGRenderSupport::mapLocalToContainer(const RenderElement& renderer, const RenderLayerModelObject* repaintContainer, TransformState& transformState, bool* wasFixed)
+void SVGRenderSupport::mapLocalToContainer(const RenderElement& renderer, const RenderLayerModelObject* ancestorContainer, TransformState& transformState, bool* wasFixed)
{
AffineTransform transform;
auto& parent = localToParentTransform(renderer, transform);
@@ -108,7 +108,7 @@
transformState.applyTransform(transform);
MapCoordinatesFlags mode = UseTransforms;
- parent.mapLocalToContainer(repaintContainer, transformState, mode, wasFixed);
+ parent.mapLocalToContainer(ancestorContainer, transformState, mode, wasFixed);
}
const RenderElement* SVGRenderSupport::pushMappingToContainer(const RenderElement& renderer, const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap)
Modified: trunk/Source/WebCore/rendering/svg/SVGRenderSupport.h (261774 => 261775)
--- trunk/Source/WebCore/rendering/svg/SVGRenderSupport.h 2020-05-16 02:07:00 UTC (rev 261774)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderSupport.h 2020-05-16 02:14:29 UTC (rev 261775)
@@ -64,10 +64,10 @@
static bool paintInfoIntersectsRepaintRect(const FloatRect& localRepaintRect, const AffineTransform& localTransform, const PaintInfo&);
// Important functions used by nearly all SVG renderers centralizing coordinate transformations / repaint rect calculations
- static LayoutRect clippedOverflowRectForRepaint(const RenderElement&, const RenderLayerModelObject* repaintContainer);
+ static LayoutRect clippedOverflowRectForRepaint(const RenderElement&, const RenderLayerModelObject* container);
static Optional<FloatRect> computeFloatVisibleRectInContainer(const RenderElement&, const FloatRect&, const RenderLayerModelObject* container, RenderObject::VisibleRectContext);
static const RenderElement& localToParentTransform(const RenderElement&, AffineTransform &);
- static void mapLocalToContainer(const RenderElement&, const RenderLayerModelObject* repaintContainer, TransformState&, bool* wasFixed);
+ static void mapLocalToContainer(const RenderElement&, const RenderLayerModelObject* ancestorContainer, TransformState&, bool* wasFixed);
static const RenderElement* pushMappingToContainer(const RenderElement&, const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap&);
static bool checkForSVGRepaintDuringLayout(const RenderElement&);