summaryrefslogtreecommitdiffstats
path: root/chrome/browser/tab_contents/render_view_host_manager.h
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-27 20:15:40 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-27 20:15:40 +0000
commitae23c272faf85d4cf779ae15d28fc59f5a8162ab (patch)
tree8c409202170b3cb9866b98d6e89185ba036323cf /chrome/browser/tab_contents/render_view_host_manager.h
parentd138713180c3aea617f4c612deb164dfdb305751 (diff)
downloadchromium_src-ae23c272faf85d4cf779ae15d28fc59f5a8162ab.zip
chromium_src-ae23c272faf85d4cf779ae15d28fc59f5a8162ab.tar.gz
chromium_src-ae23c272faf85d4cf779ae15d28fc59f5a8162ab.tar.bz2
Re-landing r21673 without re-enabling the BrowserTest, which apparently is
still failing. Make downloads not prevent tabs from closing. If a download creates a cross-site transition (for example, if you click a link in Gmail that results in a download in a new tab), that tab will be stuck and you can't close it or the browser. This is the opposite problem with a similar cause as bug 16246. In both cases we were using some secondary signal to tell us if we're closing for a cross site transition or closing the tab, and that signal was wrong. In this case, we were running the onunload handler, but because there was a pending RenderViewHost, the RenderManager would think that the close was a cross-site one, and not forward the close message to actually close the tab. This patch adds a flag to the on unload handlers that indicates whether it's for a tab closure or a cross-site transition, so we can do the right thing unambiguously when the message returns. In this case I keep this information in the RenderView in case we send multiple close requests, we'll close the tab if any of them were for the entire tab, even if that particular one was dropped because we don't want to have more than one in flight at once. BUG=17560 TEST=none. Review URL: http://codereview.chromium.org/160122 Review URL: http://codereview.chromium.org/159426 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21685 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/tab_contents/render_view_host_manager.h')
-rw-r--r--chrome/browser/tab_contents/render_view_host_manager.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/chrome/browser/tab_contents/render_view_host_manager.h b/chrome/browser/tab_contents/render_view_host_manager.h
index 0b2460b..8c8dde2 100644
--- a/chrome/browser/tab_contents/render_view_host_manager.h
+++ b/chrome/browser/tab_contents/render_view_host_manager.h
@@ -160,7 +160,7 @@ class RenderViewHostManager
}
// RenderViewHostDelegate::RendererManagement implementation.
- virtual void ShouldClosePage(bool proceed);
+ virtual void ShouldClosePage(bool for_cross_site_transition, bool proceed);
virtual void OnCrossSiteResponse(int new_render_process_host_id,
int new_request_id);
virtual void OnCrossSiteNavigationCanceled();