| Index: Source/core/rendering/RenderView.cpp
|
| diff --git a/Source/core/rendering/RenderView.cpp b/Source/core/rendering/RenderView.cpp
|
| index 22e2250ec140247464cb550bb924b517aa295554..89e7169c5c08d83d5b18c51f9839b8b1b81cc380 100644
|
| --- a/Source/core/rendering/RenderView.cpp
|
| +++ b/Source/core/rendering/RenderView.cpp
|
| @@ -301,9 +301,6 @@ void RenderView::layout()
|
|
|
| void RenderView::mapLocalToContainer(const RenderLayerModelObject* repaintContainer, TransformState& transformState, MapCoordinatesFlags mode, bool* wasFixed) const
|
| {
|
| - // If a container was specified, and was not 0 or the RenderView,
|
| - // then we should have found it by now.
|
| - ASSERT_ARG(repaintContainer, !repaintContainer || repaintContainer == this);
|
| ASSERT_UNUSED(wasFixed, !wasFixed || *wasFixed == (mode & IsFixed));
|
|
|
| if (!repaintContainer && mode & UseTransforms && shouldUseTransformFromContainer(0)) {
|
| @@ -314,6 +311,23 @@ void RenderView::mapLocalToContainer(const RenderLayerModelObject* repaintContai
|
|
|
| if (mode & IsFixed && m_frameView)
|
| transformState.move(m_frameView->scrollOffsetForFixedPosition());
|
| +
|
| + if (repaintContainer == this)
|
| + return;
|
| +
|
| + if (mode & TraverseDocumentBoundaries) {
|
| + if (RenderObject* parentDocRenderer = frame()->ownerRenderer()) {
|
| + transformState.move(-frame()->view()->scrollOffset());
|
| + if (parentDocRenderer->isBox())
|
| + transformState.move(toLayoutSize(toRenderBox(parentDocRenderer)->contentBoxRect().location()));
|
| + parentDocRenderer->mapLocalToContainer(repaintContainer, transformState, mode, wasFixed);
|
| + return;
|
| + }
|
| + }
|
| +
|
| + // If a container was specified, and was not 0 or the RenderView,
|
| + // then we should have found it by now.
|
| + ASSERT_ARG(repaintContainer, !repaintContainer);
|
| }
|
|
|
| const RenderObject* RenderView::pushMappingToContainer(const RenderLayerModelObject* ancestorToStopAt, RenderGeometryMap& geometryMap) const
|
| @@ -349,6 +363,14 @@ void RenderView::mapAbsoluteToLocalPoint(MapCoordinatesFlags mode, TransformStat
|
| }
|
| }
|
|
|
| +void RenderView::computeSelfHitTestRects(Vector<LayoutRect>& rects, const LayoutPoint&) const
|
| +{
|
| + // Record the entire size of the contents of the frame. Note that we don't just
|
| + // use the viewport size (containing block) here because we want to ensure this includes
|
| + // all children (so we can avoid walking them explicitly).
|
| + rects.append(LayoutRect(LayoutPoint::zero(), frameView()->contentsSize()));
|
| +}
|
| +
|
| bool RenderView::requiresColumns(int desiredColumnCount) const
|
| {
|
| if (m_frameView)
|
|
|