Commit 9eba18f3 authored by Xianzhu Wang's avatar Xianzhu Wang

Relayout if FrameView::updateViewSize() set needsLayout

BUG=590856
R=chrishtr@chromium.org

Review URL: https://codereview.chromium.org/2022013004 .

Cr-Commit-Position: refs/heads/master@{#396962}
parent 35c9e62b
......@@ -161,6 +161,7 @@ FrameView::FrameView(LocalFrame* frame)
, m_isUpdatingAllLifecyclePhases(false)
, m_scrollAnchor(this)
, m_needsScrollbarsUpdate(false)
, m_suppressAdjustViewSize(false)
{
ASSERT(m_frame);
init();
......@@ -531,6 +532,9 @@ void FrameView::setContentsSize(const IntSize& size)
void FrameView::adjustViewSize()
{
if (m_suppressAdjustViewSize)
return;
LayoutViewItem layoutViewItem = this->layoutViewItem();
if (layoutViewItem.isNull())
return;
......@@ -553,6 +557,15 @@ void FrameView::adjustViewSize()
setContentsSize(size);
}
void FrameView::adjustViewSizeAndLayout()
{
adjustViewSize();
if (needsLayout()) {
TemporaryChange<bool> suppressAdjustViewSize(m_suppressAdjustViewSize, true);
layout();
}
}
void FrameView::calculateScrollbarModesFromOverflowStyle(const ComputedStyle* style, ScrollbarMode& hMode, ScrollbarMode& vMode)
{
hMode = vMode = ScrollbarAuto;
......@@ -1040,7 +1053,7 @@ void FrameView::layout()
} // Reset m_layoutSchedulingEnabled to its previous value.
if (!inSubtreeLayout && !document->printing())
adjustViewSize();
adjustViewSizeAndLayout();
m_frameTimingRequestsDirty = true;
......@@ -2773,7 +2786,7 @@ void FrameView::forceLayoutForPagination(const FloatSize& pageSize, const FloatS
}
}
adjustViewSize();
adjustViewSizeAndLayout();
}
IntRect FrameView::convertFromLayoutObject(const LayoutObject& layoutObject, const IntRect& layoutObjectRect) const
......
......@@ -179,6 +179,7 @@ public:
void updateBackgroundRecursively(const Color&, bool);
void adjustViewSize();
void adjustViewSizeAndLayout();
// Scale used to convert incoming input events.
float inputEventsScaleFactor() const;
......@@ -912,6 +913,7 @@ private:
ScrollAnchor m_scrollAnchor;
bool m_needsScrollbarsUpdate;
bool m_suppressAdjustViewSize;
};
inline void FrameView::incrementVisuallyNonEmptyCharacterCount(unsigned count)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment