Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(434)

Unified Diff: Source/core/frame/FrameView.cpp

Issue 209353003: Clean up handling of autosizing state changes. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@crap_base
Patch Set: Fix segfault in unit test. Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/dom/Document.cpp ('k') | Source/core/page/Page.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/frame/FrameView.cpp
diff --git a/Source/core/frame/FrameView.cpp b/Source/core/frame/FrameView.cpp
index 415fb6b898ada519e04e7aec81b96333bbe3d37d..ddb35f8580e50275cef1628c635cccd58727a57f 100644
--- a/Source/core/frame/FrameView.cpp
+++ b/Source/core/frame/FrameView.cpp
@@ -370,8 +370,10 @@ void FrameView::setFrameRect(const IntRect& newRect)
return;
// Autosized font sizes depend on the width of the viewing area.
+ bool autosizerNeedsUpdating = false;
if (newRect.width() != oldRect.width()) {
if (isMainFrame() && m_frame->settings()->textAutosizingEnabled()) {
+ autosizerNeedsUpdating = true;
for (LocalFrame* frame = m_frame.get(); frame; frame = frame->tree().traverseNext()) {
if (TextAutosizer* textAutosizer = frame->document()->textAutosizer())
textAutosizer->recalculateMultipliers();
@@ -383,6 +385,12 @@ void FrameView::setFrameRect(const IntRect& newRect)
updateScrollableAreaSet();
+ if (autosizerNeedsUpdating) {
+ // This needs to be after the call to ScrollView::setFrameRect, because it reads the new width.
+ if (FastTextAutosizer* textAutosizer = m_frame->document()->fastTextAutosizer())
+ textAutosizer->updatePageInfoInAllFrames();
+ }
+
if (RenderView* renderView = this->renderView()) {
if (renderView->usesCompositing())
renderView->compositor()->frameViewDidChangeSize();
@@ -1741,6 +1749,11 @@ void FrameView::repaintContentRectangle(const IntRect& r)
void FrameView::contentsResized()
{
+ if (isMainFrame() && m_frame->document()) {
+ if (FastTextAutosizer* textAutosizer = m_frame->document()->fastTextAutosizer())
+ textAutosizer->updatePageInfoInAllFrames();
+ }
+
ScrollView::contentsResized();
setNeedsLayout();
}
« no previous file with comments | « Source/core/dom/Document.cpp ('k') | Source/core/page/Page.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698