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

Unified Diff: content/browser/web_contents/web_contents_impl.cc

Issue 2914013004: Propagate auto-resize viewport values to OOPIF processes (Closed)
Patch Set: Created 3 years, 7 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
Index: content/browser/web_contents/web_contents_impl.cc
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index ed882eff1d6c293bf29985766f4031d368b948c8..e2e7c50965f7278c35bc4f0d901be2e647109d7f 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -2786,10 +2786,28 @@ void WebContentsImpl::ResizeDueToAutoResize(
if (render_widget_host != GetRenderViewHost()->GetWidget())
return;
+ auto_resize_size_ = new_size;
+
+ // Out-of-process iframe visible viewport sizes usually come from the
+ // top-level RenderWidgetHostView, but when auto-resize is enabled on the
+ // top frame then that size is used instead.
+ for (FrameTreeNode* node : frame_tree_.Nodes()) {
alexmos 2017/06/02 00:45:22 If any of the nodes correspond to OOPIF <webview>'
kenrb 2017/06/02 15:44:47 I looked at this briefly yesterday when writing th
alexmos 2017/06/02 17:03:18 Acknowledged.
+ if (node->current_frame_host()->is_local_root()) {
+ RenderWidgetHostImpl* host =
+ node->current_frame_host()->GetRenderWidgetHost();
+ if (host != render_widget_host)
+ host->SendScreenRects();
+ }
+ }
+
if (delegate_)
delegate_->ResizeDueToAutoResize(this, new_size);
}
+gfx::Size WebContentsImpl::GetAutoResizeSize() {
+ return auto_resize_size_;
alexmos 2017/06/02 00:45:22 Can auto-resize ever be disabled, and if so, do we
kenrb 2017/06/02 15:44:47 The answer to your question is actually no, only <
+}
+
WebContents* WebContentsImpl::OpenURL(const OpenURLParams& params) {
if (!delegate_)
return NULL;

Powered by Google App Engine
This is Rietveld 408576698