Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Side by Side Diff: content/browser/web_contents/web_contents_impl.cc

Issue 1410313006: Separate RenderViewHost from RenderWidgetHost, part 5: move calls to the RenderWidgetHostDelegate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/web_contents/web_contents_impl.h" 5 #include "content/browser/web_contents/web_contents_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/lazy_instance.h" 10 #include "base/lazy_instance.h"
(...skipping 4202 matching lines...) Expand 10 before | Expand all | Expand 10 after
4213 void WebContentsImpl::OnUserInteraction(const blink::WebInputEvent::Type type) { 4213 void WebContentsImpl::OnUserInteraction(const blink::WebInputEvent::Type type) {
4214 FOR_EACH_OBSERVER(WebContentsObserver, observers_, 4214 FOR_EACH_OBSERVER(WebContentsObserver, observers_,
4215 DidGetUserInteraction(type)); 4215 DidGetUserInteraction(type));
4216 } 4216 }
4217 4217
4218 void WebContentsImpl::OnIgnoredUIEvent() { 4218 void WebContentsImpl::OnIgnoredUIEvent() {
4219 // Notify observers. 4219 // Notify observers.
4220 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetIgnoredUIEvent()); 4220 FOR_EACH_OBSERVER(WebContentsObserver, observers_, DidGetIgnoredUIEvent());
4221 } 4221 }
4222 4222
4223 void WebContentsImpl::RendererUnresponsive(RenderViewHost* render_view_host) { 4223 void WebContentsImpl::RendererUnresponsive(
4224 RenderWidgetHostImpl* render_widget_host) {
4224 // Don't show hung renderer dialog for a swapped out RVH. 4225 // Don't show hung renderer dialog for a swapped out RVH.
4225 if (render_view_host != GetRenderViewHost()) 4226 if (render_widget_host != GetRenderViewHost()->GetWidget())
4226 return; 4227 return;
4227 4228
4228 RenderViewHostImpl* rvhi = static_cast<RenderViewHostImpl*>(render_view_host);
4229 RenderFrameHostImpl* rfhi = 4229 RenderFrameHostImpl* rfhi =
4230 static_cast<RenderFrameHostImpl*>(rvhi->GetMainFrame()); 4230 static_cast<RenderFrameHostImpl*>(GetRenderViewHost()->GetMainFrame());
4231 4231
4232 // Ignore renderer unresponsive event if debugger is attached to the tab 4232 // Ignore renderer unresponsive event if debugger is attached to the tab
4233 // since the event may be a result of the renderer sitting on a breakpoint. 4233 // since the event may be a result of the renderer sitting on a breakpoint.
4234 // See http://crbug.com/65458 4234 // See http://crbug.com/65458
4235 if (DevToolsAgentHost::IsDebuggerAttached(this)) 4235 if (DevToolsAgentHost::IsDebuggerAttached(this))
4236 return; 4236 return;
4237 4237
4238 if (rfhi->is_waiting_for_beforeunload_ack() || 4238 if (rfhi->is_waiting_for_beforeunload_ack() ||
4239 rfhi->IsWaitingForUnloadACK()) { 4239 rfhi->IsWaitingForUnloadACK()) {
4240 // Hang occurred while firing the beforeunload/unload handler. 4240 // Hang occurred while firing the beforeunload/unload handler.
4241 // Pretend the handler fired so tab closing continues as if it had. 4241 // Pretend the handler fired so tab closing continues as if it had.
4242 rvhi->set_sudden_termination_allowed(true); 4242 GetRenderViewHost()->set_sudden_termination_allowed(true);
4243 4243
4244 if (!GetRenderManager()->ShouldCloseTabOnUnresponsiveRenderer()) 4244 if (!GetRenderManager()->ShouldCloseTabOnUnresponsiveRenderer())
4245 return; 4245 return;
4246 4246
4247 // If the tab hangs in the beforeunload/unload handler there's really 4247 // If the tab hangs in the beforeunload/unload handler there's really
4248 // nothing we can do to recover. If the hang is in the beforeunload handler, 4248 // nothing we can do to recover. If the hang is in the beforeunload handler,
4249 // pretend the beforeunload listeners have all fired and allow the delegate 4249 // pretend the beforeunload listeners have all fired and allow the delegate
4250 // to continue closing; the user will not have the option of cancelling the 4250 // to continue closing; the user will not have the option of cancelling the
4251 // close. Otherwise, pretend the unload listeners have all fired and close 4251 // close. Otherwise, pretend the unload listeners have all fired and close
4252 // the tab. 4252 // the tab.
4253 bool close = true; 4253 bool close = true;
4254 if (rfhi->is_waiting_for_beforeunload_ack() && delegate_) { 4254 if (rfhi->is_waiting_for_beforeunload_ack() && delegate_) {
4255 delegate_->BeforeUnloadFired(this, true, &close); 4255 delegate_->BeforeUnloadFired(this, true, &close);
4256 } 4256 }
4257 if (close) 4257 if (close)
4258 Close(rvhi); 4258 Close();
4259 return; 4259 return;
4260 } 4260 }
4261 4261
4262 if (!GetRenderViewHost() || !GetRenderViewHost()->IsRenderViewLive()) 4262 if (!GetRenderViewHost() || !GetRenderViewHost()->IsRenderViewLive())
4263 return; 4263 return;
4264 4264
4265 if (delegate_) 4265 if (delegate_)
4266 delegate_->RendererUnresponsive(this); 4266 delegate_->RendererUnresponsive(this);
4267 } 4267 }
4268 4268
4269 void WebContentsImpl::RendererResponsive(RenderViewHost* render_view_host) { 4269 void WebContentsImpl::RendererResponsive(
4270 RenderWidgetHostImpl* render_widget_host) {
4270 if (delegate_) 4271 if (delegate_)
4271 delegate_->RendererResponsive(this); 4272 delegate_->RendererResponsive(this);
4272 } 4273 }
4273 4274
4274 void WebContentsImpl::LoadStateChanged( 4275 void WebContentsImpl::LoadStateChanged(
4275 const GURL& url, 4276 const GURL& url,
4276 const net::LoadStateWithParam& load_state, 4277 const net::LoadStateWithParam& load_state,
4277 uint64 upload_position, 4278 uint64 upload_position,
4278 uint64 upload_size) { 4279 uint64 upload_size) {
4279 // TODO(erikchen): Remove ScopedTracker below once http://crbug.com/466285 4280 // TODO(erikchen): Remove ScopedTracker below once http://crbug.com/466285
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after
4672 return NULL; 4673 return NULL;
4673 } 4674 }
4674 4675
4675 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { 4676 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) {
4676 force_disable_overscroll_content_ = force_disable; 4677 force_disable_overscroll_content_ = force_disable;
4677 if (view_) 4678 if (view_)
4678 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); 4679 view_->SetOverscrollControllerEnabled(CanOverscrollContent());
4679 } 4680 }
4680 4681
4681 } // namespace content 4682 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698