- Revision
- 164275
- Author
- stav...@adobe.com
- Date
- 2014-02-17 23:53:51 -0800 (Mon, 17 Feb 2014)
Log Message
[CSS Regions] Move specific named flow methods from RenderRegion to RenderNamedFlowFragment
https://bugs.webkit.org/show_bug.cgi?id=128914
Reviewed by Antti Koivisto.
Moved named flow specific methods regionContainer() and regionContainerLayer() from
RenderRegion to RenderNamedFlowFragment and renamed them to fragmentContainer and
fragmentContainerLayer.
No new tests required.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderNamedFlowFragment.cpp:
(WebCore::RenderNamedFlowFragment::fragmentContainer):
(WebCore::RenderNamedFlowFragment::fragmentContainerLayer):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderRegion.cpp:
* rendering/RenderRegion.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (164274 => 164275)
--- trunk/Source/WebCore/ChangeLog 2014-02-18 07:17:24 UTC (rev 164274)
+++ trunk/Source/WebCore/ChangeLog 2014-02-18 07:53:51 UTC (rev 164275)
@@ -1,3 +1,26 @@
+2014-02-17 Radu Stavila <stav...@adobe.com>
+
+ [CSS Regions] Move specific named flow methods from RenderRegion to RenderNamedFlowFragment
+ https://bugs.webkit.org/show_bug.cgi?id=128914
+
+ Reviewed by Antti Koivisto.
+
+ Moved named flow specific methods regionContainer() and regionContainerLayer() from
+ RenderRegion to RenderNamedFlowFragment and renamed them to fragmentContainer and
+ fragmentContainerLayer.
+
+ No new tests required.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
+ (WebCore::RenderLayer::calculateClipRects):
+ * rendering/RenderNamedFlowFragment.cpp:
+ (WebCore::RenderNamedFlowFragment::fragmentContainer):
+ (WebCore::RenderNamedFlowFragment::fragmentContainerLayer):
+ * rendering/RenderNamedFlowFragment.h:
+ * rendering/RenderRegion.cpp:
+ * rendering/RenderRegion.h:
+
2014-02-17 Sangho Kim <thomas....@lge.com>
Move PublicURLMansger to std::unique_ptr.
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (164274 => 164275)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2014-02-18 07:17:24 UTC (rev 164274)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2014-02-18 07:53:51 UTC (rev 164275)
@@ -5252,15 +5252,17 @@
void RenderLayer::mapLayerClipRectsToFragmentationLayer(RenderRegion* region, ClipRects& clipRects) const
{
- ASSERT(region && region->parent() && region->parent()->isRenderNamedFlowFragmentContainer());
+ ASSERT(region && region->isRenderNamedFlowFragment() && region->parent() && region->parent()->isRenderNamedFlowFragmentContainer());
+
+ RenderNamedFlowFragment* flowFragment = toRenderNamedFlowFragment(region);
- ClipRectsContext targetClipRectsContext(region->regionContainerLayer(), 0, TemporaryClipRects);
- region->regionContainerLayer()->calculateClipRects(targetClipRectsContext, clipRects);
+ ClipRectsContext targetClipRectsContext(&flowFragment->fragmentContainerLayer(), 0, TemporaryClipRects);
+ flowFragment->fragmentContainerLayer().calculateClipRects(targetClipRectsContext, clipRects);
LayoutRect flowThreadPortionRect = region->flowThreadPortionRect();
LayoutPoint portionLocation = flowThreadPortionRect.location();
- LayoutRect regionContentBox = region->regionContainer()->contentBoxRect();
+ LayoutRect regionContentBox = flowFragment->fragmentContainer().contentBoxRect();
LayoutSize moveOffset = portionLocation - regionContentBox.location();
ClipRect newOverflowClipRect = clipRects.overflowClipRect();
@@ -5456,8 +5458,10 @@
outlineRect = backgroundRect;
// If the region does not clip its overflow, inflate the outline rect.
- if (!(clipRectsContext.region->parent()->hasOverflowClip() && (clipRectsContext.region->regionContainerLayer() != clipRectsContext.rootLayer || clipRectsContext.respectOverflowClip == RespectOverflowClip)))
- outlineRect.inflate(renderer().maximalOutlineSize(PaintPhaseOutline));
+ if (clipRectsContext.region->isRenderNamedFlowFragment()) {
+ if (!(clipRectsContext.region->parent()->hasOverflowClip() && (&toRenderNamedFlowFragment(clipRectsContext.region)->fragmentContainerLayer() != clipRectsContext.rootLayer || clipRectsContext.respectOverflowClip == RespectOverflowClip)))
+ outlineRect.inflate(renderer().maximalOutlineSize(PaintPhaseOutline));
+ }
}
// Update the clip rects that will be passed to child layers.
Modified: trunk/Source/WebCore/rendering/RenderNamedFlowFragment.cpp (164274 => 164275)
--- trunk/Source/WebCore/rendering/RenderNamedFlowFragment.cpp 2014-02-18 07:17:24 UTC (rev 164274)
+++ trunk/Source/WebCore/rendering/RenderNamedFlowFragment.cpp 2014-02-18 07:53:51 UTC (rev 164275)
@@ -197,36 +197,50 @@
// Regions with overflow:hidden will apply clip at the border box, not the content box.
LayoutRect clippingRect = flowThreadPortionRect();
- if (regionContainer()->style().hasPadding()) {
+ RenderBlockFlow& container = fragmentContainer();
+ if (container.style().hasPadding()) {
if (isFirstRegionInRange) {
if (flowThread()->isHorizontalWritingMode()) {
- clippingRect.move(0, -regionContainer()->paddingBefore());
- clippingRect.expand(0, regionContainer()->paddingBefore());
+ clippingRect.move(0, -container.paddingBefore());
+ clippingRect.expand(0, container.paddingBefore());
} else {
- clippingRect.move(-regionContainer()->paddingBefore(), 0);
- clippingRect.expand(regionContainer()->paddingBefore(), 0);
+ clippingRect.move(-container.paddingBefore(), 0);
+ clippingRect.expand(container.paddingBefore(), 0);
}
}
if (isLastRegionInRange) {
if (flowThread()->isHorizontalWritingMode())
- clippingRect.expand(0, regionContainer()->paddingAfter());
+ clippingRect.expand(0, container.paddingAfter());
else
- clippingRect.expand(regionContainer()->paddingAfter(), 0);
+ clippingRect.expand(container.paddingAfter(), 0);
}
if (flowThread()->isHorizontalWritingMode()) {
- clippingRect.move(-regionContainer()->paddingStart(), 0);
- clippingRect.expand(regionContainer()->paddingStart() + regionContainer()->paddingEnd(), 0);
+ clippingRect.move(-container.paddingStart(), 0);
+ clippingRect.expand(container.paddingStart() + container.paddingEnd(), 0);
} else {
- clippingRect.move(0, -regionContainer()->paddingStart());
- clippingRect.expand(0, regionContainer()->paddingStart() + regionContainer()->paddingEnd());
+ clippingRect.move(0, -container.paddingStart());
+ clippingRect.expand(0, container.paddingStart() + container.paddingEnd());
}
}
return clippingRect;
}
+RenderBlockFlow& RenderNamedFlowFragment::fragmentContainer() const
+{
+ ASSERT(parent());
+ ASSERT(parent()->isRenderNamedFlowFragmentContainer());
+ return *toRenderBlockFlow(parent());
+}
+
+RenderLayer& RenderNamedFlowFragment::fragmentContainerLayer() const
+{
+ ASSERT(fragmentContainer().layer());
+ return *fragmentContainer().layer();
+}
+
void RenderNamedFlowFragment::layoutBlock(bool relayoutChildren, LayoutUnit)
{
StackStats::LayoutCheckPoint layoutCheckPoint;
Modified: trunk/Source/WebCore/rendering/RenderNamedFlowFragment.h (164274 => 164275)
--- trunk/Source/WebCore/rendering/RenderNamedFlowFragment.h 2014-02-18 07:17:24 UTC (rev 164274)
+++ trunk/Source/WebCore/rendering/RenderNamedFlowFragment.h 2014-02-18 07:53:51 UTC (rev 164275)
@@ -62,6 +62,9 @@
LayoutRect flowThreadPortionRectForClipping(bool isFirstRegionInRange, bool isLastRegionInRange) const;
+ RenderBlockFlow& fragmentContainer() const;
+ RenderLayer& fragmentContainerLayer() const;
+
bool isPseudoElementRegion() const { return parent() && parent()->isPseudoElement(); }
// When the content inside the region requires the region to have a layer, the layer will be created on the region's
Modified: trunk/Source/WebCore/rendering/RenderRegion.cpp (164274 => 164275)
--- trunk/Source/WebCore/rendering/RenderRegion.cpp 2014-02-18 07:17:24 UTC (rev 164274)
+++ trunk/Source/WebCore/rendering/RenderRegion.cpp 2014-02-18 07:53:51 UTC (rev 164275)
@@ -150,17 +150,6 @@
return portionLocation;
}
-RenderBlockFlow* RenderRegion::regionContainer() const
-{
- ASSERT(parent() && parent()->isRenderNamedFlowFragmentContainer());
- return toRenderBlockFlow(parent());
-}
-
-RenderLayer* RenderRegion::regionContainerLayer() const
-{
- return regionContainer()->layer();
-}
-
LayoutRect RenderRegion::overflowRectForFlowThreadPortion(const LayoutRect& flowThreadPortionRect, bool isFirstPortion, bool isLastPortion, OverflowType overflowType)
{
ASSERT(isValid());
Modified: trunk/Source/WebCore/rendering/RenderRegion.h (164274 => 164275)
--- trunk/Source/WebCore/rendering/RenderRegion.h 2014-02-18 07:17:24 UTC (rev 164274)
+++ trunk/Source/WebCore/rendering/RenderRegion.h 2014-02-18 07:53:51 UTC (rev 164275)
@@ -56,9 +56,6 @@
LayoutRect flowThreadPortionOverflowRect();
LayoutPoint flowThreadPortionLocation() const;
-
- RenderBlockFlow* regionContainer() const;
- RenderLayer* regionContainerLayer() const;
virtual void attachRegion();
virtual void detachRegion();