Chromium Code Reviews| 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 e01a4d5484380c82981615cd9ccd33e2f8c18092..38991ea01929ae8f01435a9c259c7d87d1f96ec8 100644 |
| --- a/content/browser/web_contents/web_contents_impl.cc |
| +++ b/content/browser/web_contents/web_contents_impl.cc |
| @@ -1198,8 +1198,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_) |
| @@ -1665,13 +1667,19 @@ blink::WebDisplayMode WebContentsImpl::GetDisplayMode() const { |
| : 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 { |
| +void WebContentsImpl::RequestToLockMouse( |
| + RenderWidgetHostImpl* render_widget_host, |
| + bool user_gesture, |
| + bool last_unlocked_by_target) { |
| + if (render_widget_host != GetRenderViewHost()->GetWidget()) { |
| GotResponseToLockMouseRequest(false); |
|
ncarter (slow)
2015/11/02 17:46:56
Should be:
render_widget_host->GotResponseToLockM
Avi (use Gerrit)
2015/11/02 18:42:13
Done.
|
| + return; |
| } |
| + |
| + if (delegate_) |
| + delegate_->RequestToLockMouse(this, user_gesture, last_unlocked_by_target); |
| + else |
| + GotResponseToLockMouseRequest(false); |
| } |
| void WebContentsImpl::LostMouseLock() { |
| @@ -2169,7 +2177,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); |
| } |
| @@ -2614,7 +2627,7 @@ void WebContentsImpl::SystemDragEnded() { |
| } |
| void WebContentsImpl::UserGestureDone() { |
| - OnUserGesture(); |
| + OnUserGesture(GetRenderViewHost()->GetWidget()); |
| } |
| void WebContentsImpl::SetClosedByUserGesture(bool value) { |
| @@ -3777,7 +3790,11 @@ RendererPreferences WebContentsImpl::GetRendererPrefs( |
| return renderer_preferences_; |
| } |
| -gfx::Rect WebContentsImpl::GetRootWindowResizerRect() const { |
| +gfx::Rect WebContentsImpl::GetRootWindowResizerRect( |
| + RenderWidgetHostImpl* render_widget_host) const { |
| + if (render_widget_host != GetRenderViewHost()->GetWidget()) |
| + return gfx::Rect(); |
| + |
| if (delegate_) |
| return delegate_->GetRootWindowResizerRect(); |
| return gfx::Rect(); |
| @@ -4208,7 +4225,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()); |
| @@ -4227,14 +4247,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. |
| @@ -4246,7 +4266,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; |
| @@ -4262,7 +4282,7 @@ void WebContentsImpl::RendererUnresponsive(RenderViewHost* render_view_host) { |
| delegate_->BeforeUnloadFired(this, true, &close); |
| } |
| if (close) |
| - Close(rvhi); |
| + Close(); |
| return; |
| } |
| @@ -4273,7 +4293,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); |
| } |