Commit 73327d3d authored by skobes@chromium.org's avatar skobes@chromium.org

Reset multipliers when FTA is disabled.

Fix assertion in beginLayout on resize.

BUG=353309

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

git-svn-id: svn://svn.chromium.org/blink/trunk@170615 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 5acae092
......@@ -291,7 +291,7 @@ void FastTextAutosizer::prepareClusterStack(const RenderObject* renderer)
void FastTextAutosizer::beginLayout(RenderBlock* block)
{
ASSERT(enabled() && m_pageNeedsAutosizing && !m_updatePageInfoDeferred);
ASSERT(enabled() && shouldHandleLayout());
#ifndef NDEBUG
m_blocksThatHaveBegunLayout.add(block);
#endif
......@@ -317,7 +317,7 @@ void FastTextAutosizer::beginLayout(RenderBlock* block)
void FastTextAutosizer::inflateListItem(RenderListItem* listItem, RenderListMarker* listItemMarker)
{
if (!enabled() || !m_pageNeedsAutosizing)
if (!enabled() || !shouldHandleLayout())
return;
ASSERT(listItem && listItemMarker);
#ifndef NDEBUG
......@@ -380,7 +380,7 @@ void FastTextAutosizer::inflateTable(RenderTable* table)
void FastTextAutosizer::endLayout(RenderBlock* block)
{
ASSERT(enabled() && m_pageNeedsAutosizing);
ASSERT(enabled() && shouldHandleLayout());
if (block == m_firstBlock) {
m_firstBlock = 0;
......@@ -417,7 +417,7 @@ void FastTextAutosizer::inflate(RenderBlock* block)
}
}
bool FastTextAutosizer::enabled()
bool FastTextAutosizer::enabled() const
{
if (!m_document->settings() || !m_document->page() || m_document->printing())
return false;
......@@ -425,12 +425,14 @@ bool FastTextAutosizer::enabled()
return m_document->settings()->textAutosizingEnabled();
}
void FastTextAutosizer::updatePageInfoInAllFrames()
bool FastTextAutosizer::shouldHandleLayout() const
{
if (!enabled())
return;
return m_pageNeedsAutosizing && !m_updatePageInfoDeferred;
}
ASSERT(m_document->frame()->isMainFrame());
void FastTextAutosizer::updatePageInfoInAllFrames()
{
ASSERT(!enabled() || m_document->frame()->isMainFrame());
for (LocalFrame* frame = m_document->frame(); frame; frame = frame->tree().traverseNext()) {
if (FastTextAutosizer* textAutosizer = frame->document()->fastTextAutosizer())
......@@ -440,7 +442,13 @@ void FastTextAutosizer::updatePageInfoInAllFrames()
void FastTextAutosizer::updatePageInfo()
{
if (!enabled() || m_updatePageInfoDeferred)
if (!enabled()) {
if (m_previouslyAutosized)
resetMultipliers();
return;
}
if (m_updatePageInfoDeferred)
return;
int previousFrameWidth = m_frameWidth;
......@@ -976,7 +984,7 @@ FastTextAutosizer::LayoutScope::LayoutScope(RenderBlock* block)
if (!m_textAutosizer)
return;
if (m_textAutosizer->enabled() && m_textAutosizer->m_pageNeedsAutosizing)
if (m_textAutosizer->enabled() && m_textAutosizer->shouldHandleLayout())
m_textAutosizer->beginLayout(m_block);
else
m_textAutosizer = 0;
......
......@@ -198,7 +198,8 @@ private:
void endLayout(RenderBlock*);
void inflateTable(RenderTable*);
void inflate(RenderBlock*);
bool enabled();
bool enabled() const;
bool shouldHandleLayout() const;
void setAllTextNeedsLayout();
void resetMultipliers();
void prepareClusterStack(const RenderObject*);
......
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