Separate RenderViewHost from RenderWidgetHost, part 5: move calls to the RenderWidgetHostDelegate.
The WebContentsImpl is already a RenderWidgetHostDelegate, so there's no reason to detour through the RenderViewHostImpl.
BUG=542477
TEST=all green
Review URL: https://codereview.chromium.org/1410313006
Cr-Commit-Position: refs/heads/master@{#358648}
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index dbf2ed0..ece7e1b 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -1180,8 +1180,10 @@
// The resize rect might have changed while this was inactive -- send the new
// one to make sure it's up to date.
RenderViewHostImpl* rvh = GetRenderViewHost();
- if (rvh)
- rvh->GetWidget()->ResizeRectChanged(GetRootWindowResizerRect());
+ if (rvh) {
+ rvh->GetWidget()->ResizeRectChanged(
+ GetRootWindowResizerRect(rvh->GetWidget()));
+ }
// Restore power save blocker if there are active video players running.
if (!active_video_players_.empty() && !video_power_save_blocker_)
@@ -1659,13 +1661,19 @@
: blink::WebDisplayModeBrowser;
}
-void WebContentsImpl::RequestToLockMouse(bool user_gesture,
- bool last_unlocked_by_target) {
- if (delegate_) {
- delegate_->RequestToLockMouse(this, user_gesture, last_unlocked_by_target);
- } else {
- GotResponseToLockMouseRequest(false);
+void WebContentsImpl::RequestToLockMouse(
+ RenderWidgetHostImpl* render_widget_host,
+ bool user_gesture,
+ bool last_unlocked_by_target) {
+ if (render_widget_host != GetRenderViewHost()->GetWidget()) {
+ render_widget_host->GotResponseToLockMouseRequest(false);
+ return;
}
+
+ if (delegate_)
+ delegate_->RequestToLockMouse(this, user_gesture, last_unlocked_by_target);
+ else
+ GotResponseToLockMouseRequest(false);
}
void WebContentsImpl::LostMouseLock() {
@@ -2163,7 +2171,12 @@
OnPreferredSizeChanged(old_size);
}
-void WebContentsImpl::ResizeDueToAutoResize(const gfx::Size& new_size) {
+void WebContentsImpl::ResizeDueToAutoResize(
+ RenderWidgetHostImpl* render_widget_host,
+ const gfx::Size& new_size) {
+ if (render_widget_host != GetRenderViewHost()->GetWidget())
+ return;
+
if (delegate_)
delegate_->ResizeDueToAutoResize(this, new_size);
}
@@ -2608,7 +2621,7 @@
}
void WebContentsImpl::UserGestureDone() {
- OnUserGesture();
+ OnUserGesture(GetRenderViewHost()->GetWidget());
}
void WebContentsImpl::SetClosedByUserGesture(bool value) {
@@ -3790,7 +3803,11 @@
return renderer_preferences_;
}
-gfx::Rect WebContentsImpl::GetRootWindowResizerRect() const {
+gfx::Rect WebContentsImpl::GetRootWindowResizerRect(
+ RenderWidgetHostImpl* render_widget_host) const {
+ if (!RenderViewHostImpl::From(render_widget_host))
+ return gfx::Rect();
+
if (delegate_)
return delegate_->GetRootWindowResizerRect();
return gfx::Rect();
@@ -4242,7 +4259,10 @@
return render_view_routing_id;
}
-void WebContentsImpl::OnUserGesture() {
+void WebContentsImpl::OnUserGesture(RenderWidgetHostImpl* render_widget_host) {
+ if (render_widget_host != GetRenderViewHost()->GetWidget())
+ return;
+
// Notify observers.
FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetUserGesture());
@@ -4261,14 +4281,14 @@
FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetIgnoredUIEvent());
}
-void WebContentsImpl::RendererUnresponsive(RenderViewHost* render_view_host) {
+void WebContentsImpl::RendererUnresponsive(
+ RenderWidgetHostImpl* render_widget_host) {
// Don't show hung renderer dialog for a swapped out RVH.
- if (render_view_host != GetRenderViewHost())
+ if (render_widget_host != GetRenderViewHost()->GetWidget())
return;
- RenderViewHostImpl* rvhi = static_cast<RenderViewHostImpl*>(render_view_host);
RenderFrameHostImpl* rfhi =
- static_cast<RenderFrameHostImpl*>(rvhi->GetMainFrame());
+ static_cast<RenderFrameHostImpl*>(GetRenderViewHost()->GetMainFrame());
// Ignore renderer unresponsive event if debugger is attached to the tab
// since the event may be a result of the renderer sitting on a breakpoint.
@@ -4280,7 +4300,7 @@
rfhi->IsWaitingForUnloadACK()) {
// Hang occurred while firing the beforeunload/unload handler.
// Pretend the handler fired so tab closing continues as if it had.
- rvhi->set_sudden_termination_allowed(true);
+ GetRenderViewHost()->set_sudden_termination_allowed(true);
if (!GetRenderManager()->ShouldCloseTabOnUnresponsiveRenderer())
return;
@@ -4296,7 +4316,7 @@
delegate_->BeforeUnloadFired(this, true, &close);
}
if (close)
- Close(rvhi);
+ Close();
return;
}
@@ -4307,7 +4327,11 @@
delegate_->RendererUnresponsive(this);
}
-void WebContentsImpl::RendererResponsive(RenderViewHost* render_view_host) {
+void WebContentsImpl::RendererResponsive(
+ RenderWidgetHostImpl* render_widget_host) {
+ if (render_widget_host != GetRenderViewHost()->GetWidget())
+ return;
+
if (delegate_)
delegate_->RendererResponsive(this);
}