Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(968)

Unified Diff: Source/core/rendering/RenderBoxModelObject.cpp

Issue 143323014: *** DO NOT LAND *** Attempt to understand Regions complexity Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/RenderBoxModelObject.h ('k') | Source/core/rendering/RenderBoxRegionInfo.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/RenderBoxModelObject.cpp
diff --git a/Source/core/rendering/RenderBoxModelObject.cpp b/Source/core/rendering/RenderBoxModelObject.cpp
index 3b084c5fde5cc73a5bcbaac982dcae77e67fc05c..3868c44409e0721b697b8d2d0a52ba939bb86729 100644
--- a/Source/core/rendering/RenderBoxModelObject.cpp
+++ b/Source/core/rendering/RenderBoxModelObject.cpp
@@ -37,8 +37,6 @@
#include "core/rendering/RenderInline.h"
#include "core/rendering/RenderLayer.h"
#include "core/rendering/RenderLayerCompositor.h"
-#include "core/rendering/RenderNamedFlowThread.h"
-#include "core/rendering/RenderRegion.h"
#include "core/rendering/RenderView.h"
#include "core/rendering/style/ShadowList.h"
#include "platform/geometry/TransformState.h"
@@ -288,17 +286,14 @@ LayoutPoint RenderBoxModelObject::adjustedPositionRelativeToOffsetParent(const L
if (const RenderBoxModelObject* offsetParent = element->renderBoxModelObject()) {
if (offsetParent->isBox() && !offsetParent->isBody())
referencePoint.move(-toRenderBox(offsetParent)->borderLeft(), -toRenderBox(offsetParent)->borderTop());
- if (!isOutOfFlowPositioned() || flowThreadContainingBlock()) {
+ if (!isOutOfFlowPositioned()) {
if (isRelPositioned())
referencePoint.move(relativePositionOffset());
else if (isStickyPositioned())
referencePoint.move(stickyPositionOffset());
- // CSS regions specification says that region flows should return the body element as their offsetParent.
- // Since we will bypass the body’s renderer anyway, just end the loop if we encounter a region flow (named flow thread).
- // See http://dev.w3.org/csswg/css-regions/#cssomview-offset-attributes
RenderObject* current;
- for (current = parent(); current != offsetParent && !current->isRenderNamedFlowThread() && current->parent(); current = current->parent()) {
+ for (current = parent(); current != offsetParent && current->parent(); current = current->parent()) {
// FIXME: What are we supposed to do inside SVG content?
if (!isOutOfFlowPositioned()) {
if (current->isBox() && !current->isTableRow())
@@ -307,11 +302,7 @@ LayoutPoint RenderBoxModelObject::adjustedPositionRelativeToOffsetParent(const L
}
}
- // Compute the offset position for elements inside named flow threads for which the offsetParent was the body.
- // See https://code.google.com/p/chromium/issues/detail?id=242168
- if (current->isRenderNamedFlowThread())
- referencePoint = toRenderNamedFlowThread(current)->adjustedPositionRelativeToOffsetParent(*this, referencePoint);
- else if (offsetParent->isBox() && offsetParent->isBody() && !offsetParent->isPositioned())
+ if (offsetParent->isBox() && offsetParent->isBody() && !offsetParent->isPositioned())
referencePoint.moveBy(toRenderBox(offsetParent)->topLeftLocation());
}
}
@@ -385,7 +376,7 @@ LayoutSize RenderBoxModelObject::stickyPositionOffset() const
RenderLayer* enclosingClippingLayer = layer()->enclosingOverflowClipLayer(ExcludeSelf);
if (enclosingClippingLayer) {
RenderBox* enclosingClippingBox = toRenderBox(enclosingClippingLayer->renderer());
- LayoutRect clipRect = enclosingClippingBox->overflowClipRect(LayoutPoint(), 0); // FIXME: make this work in regions.
+ LayoutRect clipRect = enclosingClippingBox->overflowClipRect(LayoutPoint());
constrainingRect = enclosingClippingBox->localToContainerQuad(FloatRect(clipRect), view()).boundingBox();
} else {
LayoutRect viewportRect = view()->frameView()->viewportConstrainedVisibleContentRect();
@@ -626,7 +617,7 @@ void RenderBoxModelObject::paintFillLayerExtended(const PaintInfo& paintInfo, co
if (clippedWithLocalScrolling) {
// Clip to the overflow area.
RenderBox* thisBox = toRenderBox(this);
- context->clip(thisBox->overflowClipRect(rect.location(), paintInfo.renderRegion));
+ context->clip(thisBox->overflowClipRect(rect.location()));
// Adjust the paint rect to reflect a scrolled content box with borders at the ends.
IntSize offset = thisBox->scrolledContentOffset();
@@ -766,7 +757,7 @@ void RenderBoxModelObject::paintFillLayerExtended(const PaintInfo& paintInfo, co
// Now draw the text into the mask. We do this by painting using a special paint phase that signals to
// InlineTextBoxes that they should just add their contents to the clip.
- PaintInfo info(context, maskRect, PaintPhaseTextClip, PaintBehaviorForceBlackText, 0, paintInfo.renderRegion);
+ PaintInfo info(context, maskRect, PaintPhaseTextClip, PaintBehaviorForceBlackText, 0);
context->setCompositeOperation(CompositeSourceOver);
if (box) {
RootInlineBox* root = box->root();
@@ -2737,19 +2728,6 @@ void RenderBoxModelObject::mapAbsoluteToLocalPoint(MapCoordinatesFlags mode, Tra
if (!o)
return;
- // The point inside a box that's inside a region has its coordinates relative to the region,
- // not the FlowThread that is its container in the RenderObject tree.
- if (o->isRenderFlowThread() && isRenderBlock()) {
- // FIXME: switch to Box instead of Block when we'll have range information for boxes as well, not just for blocks.
- RenderRegion* startRegion;
- RenderRegion* ignoredEndRegion;
- toRenderFlowThread(o)->getRegionRangeForBox(toRenderBlock(this), startRegion, ignoredEndRegion);
- // If there is no region to use the FlowThread, then there's no region range for the content in that FlowThread.
- // An API like elementFromPoint might crash without this check.
- if (startRegion)
- o = startRegion;
- }
-
o->mapAbsoluteToLocalPoint(mode, transformState);
LayoutSize containerOffset = offsetFromContainer(o, LayoutPoint());
« no previous file with comments | « Source/core/rendering/RenderBoxModelObject.h ('k') | Source/core/rendering/RenderBoxRegionInfo.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698