| 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()
|
|
|