Index: chrome/browser/ui/panels/panel.cc |
diff --git a/chrome/browser/ui/panels/panel.cc b/chrome/browser/ui/panels/panel.cc |
index 6863fee73660ce66e4dc835abebf6e1085b75e09..42917cee4bbed3abe6c6fc354d3f4903c6f95387 100644 |
--- a/chrome/browser/ui/panels/panel.cc |
+++ b/chrome/browser/ui/panels/panel.cc |
@@ -119,14 +119,21 @@ void Panel::SetAutoResizable(bool resizable) { |
return; |
auto_resizable_ = resizable; |
+ WebContents* web_contents = browser()->GetSelectedWebContents(); |
if (auto_resizable_) { |
browser()->tabstrip_model()->AddObserver(this); |
- WebContents* web_contents = browser()->GetSelectedWebContents(); |
if (web_contents) |
EnableWebContentsAutoResize(web_contents); |
} else { |
browser()->tabstrip_model()->RemoveObserver(this); |
registrar_.RemoveAll(); |
+ |
+ if (web_contents) { |
+ // NULL might be returned if the tab has not been added. |
+ RenderViewHost* render_view_host = web_contents->GetRenderViewHost(); |
+ if (render_view_host) |
+ render_view_host->DisableAutoResize(restored_size_); |
+ } |
} |
} |
@@ -620,12 +627,12 @@ void Panel::ShowKeyboardOverlay(gfx::NativeWindow owning_window) { |
} |
#endif |
-void Panel::UpdatePreferredSize(WebContents* web_contents, |
- const gfx::Size& pref_size) { |
- if (auto_resizable_) { |
- return manager()->OnPreferredWindowSizeChanged(this, |
- native_panel_->WindowSizeFromContentSize(pref_size)); |
- } |
+void Panel::ResizeDueToAutoResize(WebContents* web_contents, |
+ const gfx::Size& pref_size) { |
+ DCHECK(auto_resizable_); |
+ return manager()->OnWindowAutoResized( |
+ this, |
+ native_panel_->WindowSizeFromContentSize(pref_size)); |
} |
void Panel::ShowAvatarBubble(WebContents* web_contents, const gfx::Rect& rect) { |