Index: Source/core/rendering/RenderLayer.cpp |
diff --git a/Source/core/rendering/RenderLayer.cpp b/Source/core/rendering/RenderLayer.cpp |
index 40929ef10c881f0eb92eec07e8ed59e727051ba5..9ba262c13a414167ad17ceb6b39b097060de945f 100644 |
--- a/Source/core/rendering/RenderLayer.cpp |
+++ b/Source/core/rendering/RenderLayer.cpp |
@@ -114,9 +114,6 @@ RenderLayer::RenderLayer(RenderLayerModelObject* renderer, LayerType type) |
, m_hasVisibleDescendant(false) |
, m_hasVisibleNonLayerContent(false) |
, m_isPaginated(false) |
-#if ENABLE(ASSERT) |
- , m_needsPositionUpdate(true) |
-#endif |
, m_3DTransformedDescendantStatusDirty(true) |
, m_has3DTransformedDescendant(false) |
, m_containsDirtyOverlayScrollbars(false) |
@@ -264,8 +261,6 @@ void RenderLayer::updateLayerPositionsAfterLayout() |
void RenderLayer::updateLayerPositionRecursive() |
{ |
- updateLayerPosition(); |
- |
if (hasOverflowControls()) { |
// FIXME: We should figure out the right time to position the overflow controls. |
// This call appears to be necessary to pass some layout test that use EventSender, |
@@ -323,21 +318,6 @@ bool RenderLayer::scrollsWithRespectTo(const RenderLayer* other) const |
return ancestorScrollingLayer() != other->ancestorScrollingLayer(); |
} |
-void RenderLayer::updateLayerPositionsAfterOverflowScroll() |
-{ |
- m_clipper.clearClipRectsIncludingDescendants(); |
- updateLayerPositionsAfterScrollRecursive(); |
-} |
- |
-void RenderLayer::updateLayerPositionsAfterScrollRecursive() |
-{ |
- if (updateLayerPosition()) |
- m_renderer->setPreviousPaintInvalidationRect(m_renderer->boundsRectForPaintInvalidation(m_renderer->containerForPaintInvalidation())); |
- |
- for (RenderLayer* child = firstChild(); child; child = child->nextSibling()) |
- child->updateLayerPositionsAfterScrollRecursive(); |
-} |
- |
void RenderLayer::updateTransformationMatrix() |
{ |
if (m_transform) { |
@@ -797,7 +777,19 @@ bool RenderLayer::update3DTransformedDescendantStatus() |
return has3DTransform(); |
} |
-bool RenderLayer::updateLayerPosition() |
+const IntSize RenderLayer::size() const |
abarth-chromium
2014/08/07 21:51:12
No need for |const| here. IntSize is a value type
skobes
2014/08/07 22:21:09
Done.
|
+{ |
+ if (renderer()->isInline() && renderer()->isRenderInline()) |
+ return toRenderInline(renderer())->linesBoundingBox().size(); |
+ |
+ // FIXME: Is snapping the size really needed here? |
+ if (RenderBox* box = renderBox()) |
+ return pixelSnappedIntSize(box->size(), box->location()); |
+ |
+ return IntSize(); |
+} |
+ |
+const LayoutPoint RenderLayer::location() const |
abarth-chromium
2014/08/07 21:51:12
No need for |const| here. LayoutPoint is a value
skobes
2014/08/07 22:21:09
Done.
|
{ |
LayoutPoint localPoint; |
LayoutSize inlineBoundingBoxOffset; // We don't put this into the RenderLayer x/y for inlines, so we need to subtract it out when done. |
@@ -805,12 +797,9 @@ bool RenderLayer::updateLayerPosition() |
if (renderer()->isInline() && renderer()->isRenderInline()) { |
RenderInline* inlineFlow = toRenderInline(renderer()); |
IntRect lineBox = inlineFlow->linesBoundingBox(); |
- m_size = lineBox.size(); |
inlineBoundingBoxOffset = toSize(lineBox.location()); |
localPoint += inlineBoundingBoxOffset; |
} else if (RenderBox* box = renderBox()) { |
- // FIXME: Is snapping the size really needed here for the RenderBox case? |
- m_size = pixelSnappedIntSize(box->size(), box->location()); |
localPoint += box->topLeftLocationOffset(); |
} |
@@ -867,27 +856,17 @@ bool RenderLayer::updateLayerPosition() |
} |
} |
- bool positionOrOffsetChanged = false; |
- if (renderer()->isRelPositioned()) { |
- LayoutSize newOffset = toRenderBoxModelObject(renderer())->offsetForInFlowPosition(); |
- positionOrOffsetChanged = newOffset != m_offsetForInFlowPosition; |
- m_offsetForInFlowPosition = newOffset; |
- localPoint.move(m_offsetForInFlowPosition); |
- } else { |
- m_offsetForInFlowPosition = LayoutSize(); |
- } |
+ localPoint.move(offsetForInFlowPosition()); |
// FIXME: We'd really like to just get rid of the concept of a layer rectangle and rely on the renderers. |
localPoint -= inlineBoundingBoxOffset; |
- if (m_location != localPoint) |
- positionOrOffsetChanged = true; |
- m_location = localPoint; |
+ return localPoint; |
+} |
-#if ENABLE(ASSERT) |
- m_needsPositionUpdate = false; |
-#endif |
- return positionOrOffsetChanged; |
+const LayoutSize RenderLayer::offsetForInFlowPosition() const |
+{ |
+ return renderer()->isRelPositioned() ? toRenderBoxModelObject(renderer())->offsetForInFlowPosition() : LayoutSize(); |
} |
TransformationMatrix RenderLayer::perspectiveTransform() const |