Index: third_party/WebKit/Source/web/WebViewImpl.cpp |
diff --git a/third_party/WebKit/Source/web/WebViewImpl.cpp b/third_party/WebKit/Source/web/WebViewImpl.cpp |
index 5cb5f0877bd765fc03d22d855cac2daff5b0626b..31b8efb1e4a0fbcfc86b4816ed5a7c8faaa38ae7 100644 |
--- a/third_party/WebKit/Source/web/WebViewImpl.cpp |
+++ b/third_party/WebKit/Source/web/WebViewImpl.cpp |
@@ -1804,7 +1804,7 @@ void WebViewImpl::ResizeVisualViewport(const WebSize& new_size) { |
GetPage()->GetVisualViewport().ClampToBoundaries(); |
} |
-void WebViewImpl::PerformResize() { |
+void WebViewImpl::UpdateICBAndResizeViewport() { |
// We'll keep the initial containing block size from changing when the top |
// controls hide so that the ICB will always be the same size as the |
// viewport with the browser controls shown. |
@@ -1825,7 +1825,7 @@ void WebViewImpl::PerformResize() { |
if (MainFrameImpl()->GetFrameView()) { |
MainFrameImpl()->GetFrameView()->SetInitialViewportSize(icb_size); |
if (!MainFrameImpl()->GetFrameView()->NeedsLayout()) |
- PostLayoutResize(MainFrameImpl()); |
+ ResizeFrameView(MainFrameImpl()); |
} |
} |
@@ -1845,7 +1845,7 @@ void WebViewImpl::UpdateBrowserControlsState(WebBrowserControlsState constraint, |
constraint == kWebBrowserControlsBoth) || |
(old_permitted_state == kWebBrowserControlsBoth && |
constraint == kWebBrowserControlsHidden)) { |
- PerformResize(); |
+ UpdateICBAndResizeViewport(); |
} |
if (layer_tree_view_) |
@@ -1901,7 +1901,7 @@ void WebViewImpl::ResizeViewWhileAnchored(float browser_controls_height, |
// Avoids unnecessary invalidations while various bits of state in |
// TextAutosizer are updated. |
TextAutosizer::DeferUpdatePageInfo defer_update_page_info(GetPage()); |
- PerformResize(); |
+ UpdateICBAndResizeViewport(); |
} |
fullscreen_controller_->UpdateSize(); |
@@ -3657,7 +3657,7 @@ void WebViewImpl::DidCommitLoad(bool is_new_navigation, |
EndActiveFlingAnimation(); |
} |
-void WebViewImpl::PostLayoutResize(WebLocalFrameImpl* webframe) { |
+void WebViewImpl::ResizeFrameView(WebLocalFrameImpl* webframe) { |
FrameView* view = webframe->GetFrame()->View(); |
if (webframe == MainFrame()) |
resize_viewport_anchor_->ResizeFrameView(MainFrameSize()); |
@@ -3665,7 +3665,7 @@ void WebViewImpl::PostLayoutResize(WebLocalFrameImpl* webframe) { |
view->Resize(webframe->GetFrameView()->Size()); |
} |
-void WebViewImpl::LayoutUpdated(WebLocalFrameImpl* webframe) { |
+void WebViewImpl::ResizeAfterLayout(WebLocalFrameImpl* webframe) { |
LocalFrame* frame = webframe->GetFrame(); |
if (!client_ || !client_->CanUpdateLayout() || !frame->IsMainFrame()) |
return; |
@@ -3687,12 +3687,19 @@ void WebViewImpl::LayoutUpdated(WebLocalFrameImpl* webframe) { |
if (GetPageScaleConstraintsSet().ConstraintsDirty()) |
RefreshPageScaleFactorAfterLayout(); |
- FrameView* view = webframe->GetFrame()->View(); |
+ UpdateICBAndResizeViewport(); |
+} |
+ |
+void WebViewImpl::LayoutUpdated(WebLocalFrameImpl* webframe) { |
+ LocalFrame* frame = webframe->GetFrame(); |
+ if (!client_ || !client_->CanUpdateLayout() || !frame->IsMainFrame()) |
+ return; |
- PostLayoutResize(webframe); |
+ ResizeAfterLayout(webframe); |
// Relayout immediately to avoid violating the rule that needsLayout() |
// isn't set at the end of a layout. |
+ FrameView* view = frame->View(); |
if (view->NeedsLayout()) |
view->UpdateLayout(); |