Index: third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
diff --git a/third_party/WebKit/Source/core/layout/LayoutBlock.cpp b/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
index 1558ff589901d6e1c1eec36f77ec0296f1dadc3d..5d467351fbbe677e581143a030b555be27cce364 100644 |
--- a/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
+++ b/third_party/WebKit/Source/core/layout/LayoutBlock.cpp |
@@ -83,10 +83,6 @@ static TrackedContainerMap* gPositionedContainerMap = nullptr; |
// for every layout (see the comment above about why). |
static TrackedDescendantsMap* gPercentHeightDescendantsMap = nullptr; |
-typedef WTF::HashSet<LayoutBlock*> DelayedUpdateScrollInfoSet; |
-static int gDelayUpdateScrollInfo = 0; |
-static DelayedUpdateScrollInfoSet* gDelayedUpdateScrollInfoSet = nullptr; |
- |
LayoutBlock::LayoutBlock(ContainerNode* node) |
: LayoutBox(node) |
, m_hasMarginBeforeQuirk(false) |
@@ -134,9 +130,6 @@ void LayoutBlock::willBeDestroyed() |
if (!documentBeingDestroyed() && parent()) |
parent()->dirtyLinesFromChangedChild(this); |
- if (UNLIKELY(gDelayedUpdateScrollInfoSet != 0)) |
- gDelayedUpdateScrollInfoSet->remove(this); |
- |
if (TextAutosizer* textAutosizer = document().textAutosizer()) |
textAutosizer->destroy(this); |
@@ -343,61 +336,14 @@ void LayoutBlock::removeLeftoverAnonymousBlock(LayoutBlock* child) |
child->destroy(); |
} |
-void LayoutBlock::startDelayUpdateScrollInfo() |
-{ |
- if (gDelayUpdateScrollInfo == 0) { |
- ASSERT(!gDelayedUpdateScrollInfoSet); |
- gDelayedUpdateScrollInfoSet = new DelayedUpdateScrollInfoSet; |
- } |
- ASSERT(gDelayedUpdateScrollInfoSet); |
- ++gDelayUpdateScrollInfo; |
-} |
- |
-bool LayoutBlock::finishDelayUpdateScrollInfo(SubtreeLayoutScope* layoutScope, ScrollPositionMap* scrollMap) |
-{ |
- bool childrenMarkedForRelayout = false; |
- |
- --gDelayUpdateScrollInfo; |
- ASSERT(gDelayUpdateScrollInfo >= 0); |
- if (gDelayUpdateScrollInfo == 0) { |
- ASSERT(gDelayedUpdateScrollInfoSet); |
- |
- OwnPtr<DelayedUpdateScrollInfoSet> infoSet(adoptPtr(gDelayedUpdateScrollInfoSet)); |
- gDelayedUpdateScrollInfoSet = nullptr; |
- |
- for (auto* block : *infoSet) { |
- if (block->hasOverflowClip()) { |
- PaintLayerScrollableArea* scrollableArea = block->layer()->getScrollableArea(); |
- if (scrollMap) |
- scrollMap->add(scrollableArea, scrollableArea->scrollPositionDouble()); |
- childrenMarkedForRelayout |= scrollableArea->updateAfterLayout(layoutScope); |
- } |
- } |
- } |
- return childrenMarkedForRelayout; |
-} |
- |
void LayoutBlock::updateAfterLayout() |
{ |
invalidateStickyConstraints(); |
// Update our scroll information if we're overflow:auto/scroll/hidden now that we know if |
// we overflow or not. |
- if (hasOverflowClip()) { |
- if (style()->isFlippedBlocksWritingMode()) { |
- // FIXME: https://bugs.webkit.org/show_bug.cgi?id=97937 |
- // Workaround for now. We cannot delay the scroll info for overflow |
- // for items with opposite writing directions, as the contents needs |
- // to overflow in that direction |
- layer()->getScrollableArea()->updateAfterLayout(); |
- return; |
- } |
- |
- if (gDelayUpdateScrollInfo) |
- gDelayedUpdateScrollInfoSet->add(this); |
- else |
- layer()->getScrollableArea()->updateAfterLayout(); |
- } |
+ if (hasOverflowClip()) |
+ layer()->getScrollableArea()->updateAfterLayout(); |
} |
void LayoutBlock::layout() |