Remove RenderViewObserver::Resized (try 2)
The only client was AutofillAgent; reimplement the functionality in a slightly different way. While we're at it, fix a bug where the browser-owned popup is hidden without the renderer's knowledge.
BUG=433486,449325
Review URL: https://codereview.chromium.org/854943002
Cr-Commit-Position: refs/heads/master@{#312346}
diff --git a/content/browser/renderer_host/render_widget_host_delegate.h b/content/browser/renderer_host/render_widget_host_delegate.h
index 669dc25..b68d72d 100644
--- a/content/browser/renderer_host/render_widget_host_delegate.h
+++ b/content/browser/renderer_host/render_widget_host_delegate.h
@@ -34,6 +34,10 @@
// The RenderWidgetHost got the focus.
virtual void RenderWidgetGotFocus(RenderWidgetHostImpl* render_widget_host) {}
+ // The RenderWidget was resized.
+ virtual void RenderWidgetWasResized(
+ RenderWidgetHostImpl* render_widget_host) {}
+
// Callback to give the browser a chance to handle the specified keyboard
// event before sending it to the renderer.
// Returns true if the |event| was handled. Otherwise, if the |event| would
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc
index 2d695c3..25b1fcd 100644
--- a/content/browser/renderer_host/render_widget_host_impl.cc
+++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -637,6 +637,9 @@
} else {
old_resize_params_.swap(params);
}
+
+ if (delegate_)
+ delegate_->RenderWidgetWasResized(this);
}
void RenderWidgetHostImpl::ResizeRectChanged(const gfx::Rect& new_rect) {
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 5b891f5..64c7bcd 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -1338,6 +1338,17 @@
delegate_->WebContentsFocused(this);
}
+void WebContentsImpl::RenderWidgetWasResized(
+ RenderWidgetHostImpl* render_widget_host) {
+ if (render_widget_host !=
+ static_cast<RenderFrameHostImpl*>(GetMainFrame())
+ ->GetRenderWidgetHost()) {
+ return;
+ }
+
+ FOR_EACH_OBSERVER(WebContentsObserver, observers_, MainFrameWasResized());
+}
+
bool WebContentsImpl::PreHandleKeyboardEvent(
const NativeWebKeyboardEvent& event,
bool* is_keyboard_shortcut) {
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 0f56ad43..5db6b0d 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -535,6 +535,8 @@
void RenderWidgetDeleted(RenderWidgetHostImpl* render_widget_host) override;
void RenderWidgetGotFocus(RenderWidgetHostImpl* render_widget_host) override;
+ void RenderWidgetWasResized(
+ RenderWidgetHostImpl* render_widget_host) override;
bool PreHandleKeyboardEvent(const NativeWebKeyboardEvent& event,
bool* is_keyboard_shortcut) override;
void HandleKeyboardEvent(const NativeWebKeyboardEvent& event) override;