| 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 906e19a8051303833ff54cbacddf6a03dcfe3304..9fb8cacb4d6b54e30c79a99b5d674ff53ad2378e 100644
|
| --- a/content/browser/web_contents/web_contents_impl.cc
|
| +++ b/content/browser/web_contents/web_contents_impl.cc
|
| @@ -236,30 +236,6 @@ void SetAccessibilityModeOnFrame(AccessibilityMode mode,
|
| static_cast<RenderFrameHostImpl*>(frame_host)->SetAccessibilityMode(mode);
|
| }
|
|
|
| -// Enable sudden termination for the current RenderFrameHost of
|
| -// |frame_tree_node| if the ID of its SiteInstance is |site_instance_id|. Used
|
| -// with FrameTree::ForEach.
|
| -bool EnableSuddenTermination(int32 site_instance_id,
|
| - FrameTreeNode* frame_tree_node) {
|
| - if (frame_tree_node->current_frame_host()->GetSiteInstance()->GetId()
|
| - == site_instance_id) {
|
| - frame_tree_node->current_frame_host()
|
| - ->set_override_sudden_termination_status(true);
|
| - }
|
| - return true;
|
| -}
|
| -
|
| -// Returns false and sets |sudden_termination_allowed| to false if sudden
|
| -// termination is not allowed for the current RenderFrameHost of
|
| -// |frame_tree_node|. Used with FrameTree::ForEach.
|
| -bool SuddenTerminationAllowed(bool* sudden_termination_allowed,
|
| - FrameTreeNode* frame_tree_node) {
|
| - if (frame_tree_node->current_frame_host()->SuddenTerminationAllowed())
|
| - return true;
|
| - *sudden_termination_allowed = false;
|
| - return false;
|
| -}
|
| -
|
| // Returns true if at least one of the nodes in the |frame_tree| is loading.
|
| bool IsFrameTreeLoading(FrameTree& frame_tree) {
|
| bool is_loading = false;
|
| @@ -855,7 +831,7 @@ bool WebContentsImpl::IsFullAccessibilityModeForTesting() const {
|
| void WebContentsImpl::SetParentNativeViewAccessible(
|
| gfx::NativeViewAccessible accessible_parent) {
|
| accessible_parent_ = accessible_parent;
|
| - RenderFrameHostImpl* rfh = GetMainFrame();
|
| + RenderFrameHostImpl* rfh = static_cast<RenderFrameHostImpl*>(GetMainFrame());
|
| if (rfh)
|
| rfh->SetParentNativeViewAccessible(accessible_parent);
|
| }
|
| @@ -1189,17 +1165,16 @@ void WebContentsImpl::WasUnOccluded() {
|
| }
|
|
|
| bool WebContentsImpl::NeedToFireBeforeUnload() {
|
| - bool sudden_termination_allowed = true;
|
| - frame_tree_.ForEach(base::Bind(
|
| - &SuddenTerminationAllowed, &sudden_termination_allowed));
|
| // TODO(creis): Should we fire even for interstitial pages?
|
| return WillNotifyDisconnection() &&
|
| !ShowingInterstitialPage() &&
|
| - !sudden_termination_allowed;
|
| + !static_cast<RenderViewHostImpl*>(
|
| + GetRenderViewHost())->SuddenTerminationAllowed();
|
| }
|
|
|
| void WebContentsImpl::DispatchBeforeUnload(bool for_cross_site_transition) {
|
| - GetMainFrame()->DispatchBeforeUnload(for_cross_site_transition);
|
| + static_cast<RenderFrameHostImpl*>(GetMainFrame())->DispatchBeforeUnload(
|
| + for_cross_site_transition);
|
| }
|
|
|
| void WebContentsImpl::Stop() {
|
| @@ -1448,7 +1423,7 @@ void WebContentsImpl::RenderWidgetGotFocus(
|
| void WebContentsImpl::RenderWidgetWasResized(
|
| RenderWidgetHostImpl* render_widget_host,
|
| bool width_changed) {
|
| - RenderFrameHostImpl* rfh = GetMainFrame();
|
| + RenderFrameHostImpl* rfh = static_cast<RenderFrameHostImpl*>(GetMainFrame());
|
| if (!rfh || render_widget_host != rfh->GetRenderWidgetHost())
|
| return;
|
|
|
| @@ -1881,7 +1856,7 @@ WebContentsImpl* WebContentsImpl::GetCreatedWindow(int route_id) {
|
| // Resume blocked requests for both the RenderViewHost and RenderFrameHost.
|
| // TODO(brettw): It seems bogus to reach into here and initialize the host.
|
| static_cast<RenderViewHostImpl*>(new_contents->GetRenderViewHost())->Init();
|
| - new_contents->GetMainFrame()->Init();
|
| + static_cast<RenderFrameHostImpl*>(new_contents->GetMainFrame())->Init();
|
|
|
| return new_contents;
|
| }
|
| @@ -1999,13 +1974,13 @@ void WebContentsImpl::DidSendScreenRects(RenderWidgetHostImpl* rwh) {
|
|
|
| BrowserAccessibilityManager*
|
| WebContentsImpl::GetRootBrowserAccessibilityManager() {
|
| - RenderFrameHostImpl* rfh = GetMainFrame();
|
| + RenderFrameHostImpl* rfh = static_cast<RenderFrameHostImpl*>(GetMainFrame());
|
| return rfh ? rfh->browser_accessibility_manager() : NULL;
|
| }
|
|
|
| BrowserAccessibilityManager*
|
| WebContentsImpl::GetOrCreateRootBrowserAccessibilityManager() {
|
| - RenderFrameHostImpl* rfh = GetMainFrame();
|
| + RenderFrameHostImpl* rfh = static_cast<RenderFrameHostImpl*>(GetMainFrame());
|
| return rfh ? rfh->GetOrCreateBrowserAccessibilityManager() : NULL;
|
| }
|
|
|
| @@ -4209,8 +4184,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.
|
| - frame_tree_.ForEach(base::Bind(
|
| - &EnableSuddenTermination, rvhi->GetSiteInstance()->GetId()));
|
| + rvhi->set_sudden_termination_allowed(true);
|
|
|
| if (!GetRenderManager()->ShouldCloseTabOnUnresponsiveRenderer())
|
| return;
|
|
|