Title: [164275] trunk/Source/WebCore
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();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to