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 41a60845bbd6dcbd8470f5765012c9bd3bd057c6..6fbe4cdcbde14bf651323339334bba9aa65286d0 100644 |
--- a/content/browser/web_contents/web_contents_impl.cc |
+++ b/content/browser/web_contents/web_contents_impl.cc |
@@ -1174,8 +1174,10 @@ void WebContentsImpl::WasShown() { |
// 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_) |
@@ -1653,13 +1655,19 @@ blink::WebDisplayMode WebContentsImpl::GetDisplayMode() const { |
: blink::WebDisplayModeBrowser; |
} |
-void WebContentsImpl::RequestToLockMouse(bool user_gesture, |
- bool last_unlocked_by_target) { |
- if (delegate_) { |
+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 { |
+ else |
GotResponseToLockMouseRequest(false); |
- } |
} |
void WebContentsImpl::LostMouseLock() { |
@@ -2157,7 +2165,12 @@ void WebContentsImpl::UpdatePreferredSize(const gfx::Size& pref_size) { |
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); |
} |
@@ -2602,7 +2615,7 @@ void WebContentsImpl::SystemDragEnded() { |
} |
void WebContentsImpl::UserGestureDone() { |
- OnUserGesture(); |
+ OnUserGesture(GetRenderViewHost()->GetWidget()); |
} |
void WebContentsImpl::SetClosedByUserGesture(bool value) { |
@@ -3763,7 +3776,11 @@ RendererPreferences WebContentsImpl::GetRendererPrefs( |
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(); |
@@ -4215,7 +4232,10 @@ int WebContentsImpl::CreateSwappedOutRenderView( |
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()); |
@@ -4234,14 +4254,14 @@ void WebContentsImpl::OnIgnoredUIEvent() { |
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. |
@@ -4253,7 +4273,7 @@ void WebContentsImpl::RendererUnresponsive(RenderViewHost* render_view_host) { |
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; |
@@ -4269,7 +4289,7 @@ void WebContentsImpl::RendererUnresponsive(RenderViewHost* render_view_host) { |
delegate_->BeforeUnloadFired(this, true, &close); |
} |
if (close) |
- Close(rvhi); |
+ Close(); |
return; |
} |
@@ -4280,7 +4300,11 @@ void WebContentsImpl::RendererUnresponsive(RenderViewHost* render_view_host) { |
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); |
} |