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;