Index: third_party/WebKit/Source/core/layout/LayoutBox.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutBox.cpp b/third_party/WebKit/Source/core/layout/LayoutBox.cpp |
index 42db96d936b8e33d6e1432d45b4730df3e40e458..b69ead57aa2046f5ce7d7bc116f0405c4dc20421 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBox.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBox.cpp |
@@ -75,9 +75,6 @@ namespace blink { |
// Used by flexible boxes when flexing this element and by table cells. |
typedef WTF::HashMap<const LayoutBox*, LayoutUnit> OverrideSizeMap; |
-static OverrideSizeMap* gExtraInlineOffsetMap = nullptr; |
-static OverrideSizeMap* gExtraBlockOffsetMap = nullptr; |
- |
// Size of border belt for autoscroll. When mouse pointer in border belt, |
// autoscroll is started. |
static const int autoscrollBeltSize = 20; |
@@ -123,7 +120,6 @@ PaintLayerType LayoutBox::layerTypeRequired() const { |
void LayoutBox::willBeDestroyed() { |
clearOverrideSize(); |
clearContainingBlockOverrideSize(); |
- clearExtraInlineAndBlockOffests(); |
if (isOutOfFlowPositioned()) |
LayoutBlock::removePositionedObject(this); |
@@ -1310,34 +1306,6 @@ void LayoutBox::clearOverrideContainingBlockContentLogicalHeight() { |
ensureRareData().m_hasOverrideContainingBlockContentLogicalHeight = false; |
} |
-LayoutUnit LayoutBox::extraInlineOffset() const { |
- return gExtraInlineOffsetMap ? gExtraInlineOffsetMap->get(this) |
- : LayoutUnit(); |
-} |
- |
-LayoutUnit LayoutBox::extraBlockOffset() const { |
- return gExtraBlockOffsetMap ? gExtraBlockOffsetMap->get(this) : LayoutUnit(); |
-} |
- |
-void LayoutBox::setExtraInlineOffset(LayoutUnit inlineOffest) { |
- if (!gExtraInlineOffsetMap) |
- gExtraInlineOffsetMap = new OverrideSizeMap; |
- gExtraInlineOffsetMap->set(this, inlineOffest); |
-} |
- |
-void LayoutBox::setExtraBlockOffset(LayoutUnit blockOffest) { |
- if (!gExtraBlockOffsetMap) |
- gExtraBlockOffsetMap = new OverrideSizeMap; |
- gExtraBlockOffsetMap->set(this, blockOffest); |
-} |
- |
-void LayoutBox::clearExtraInlineAndBlockOffests() { |
- if (gExtraInlineOffsetMap) |
- gExtraInlineOffsetMap->remove(this); |
- if (gExtraBlockOffsetMap) |
- gExtraBlockOffsetMap->remove(this); |
-} |
- |
LayoutUnit LayoutBox::adjustBorderBoxLogicalWidthForBoxSizing( |
float width) const { |
LayoutUnit bordersPlusPadding = collapsedBorderAndCSSPaddingLogicalWidth(); |
@@ -3724,6 +3692,14 @@ void LayoutBox::computeInlineStaticDistance( |
if (!logicalLeft.isAuto() || !logicalRight.isAuto()) |
return; |
+ if (child->isGridItem() && child->containingBlock() == child->parent()) { |
+ if (child->parent()->style()->direction() == TextDirection::kLtr) |
+ logicalLeft.setValue(Fixed, 0); |
+ else |
+ logicalRight.setValue(Fixed, 0); |
+ return; |
+ } |
svillar
2017/01/31 15:28:40
Mind explaining this change?
Manuel Rego
2017/02/01 09:08:20
So this method is used when in a positioned elemen
svillar
2017/02/01 09:49:07
OK now I understand that we're just setting it to
Manuel Rego
2017/02/01 11:08:08
Actually I've realized we can do this in a differe
Manuel Rego
2017/02/01 11:10:34
Oops sorry this comment is wrong, it was about a d
|
+ |
// For multicol we also need to keep track of the block position, since that |
// determines which column we're in and thus affects the inline position. |
LayoutUnit staticBlockPosition = child->layer()->staticBlockPosition(); |
@@ -3904,9 +3880,6 @@ void LayoutBox::computePositionedLogicalWidth( |
} |
} |
- if (!style()->hasStaticInlinePosition(isHorizontal)) |
- computedValues.m_position += extraInlineOffset(); |
- |
computedValues.m_extent += bordersPlusPadding; |
} |
@@ -4303,9 +4276,6 @@ void LayoutBox::computePositionedLogicalHeight( |
} |
} |
- if (!style()->hasStaticBlockPosition(isHorizontalWritingMode())) |
- computedValues.m_position += extraBlockOffset(); |
- |
// Set final height value. |
computedValues.m_extent += bordersPlusPadding; |
} |