| 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);
|
| }
|
|
|