summaryrefslogtreecommitdiffstats
path: root/chrome/browser/tab_contents_delegate.h
diff options
context:
space:
mode:
authorojan@google.com <ojan@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-02 00:44:47 +0000
committerojan@google.com <ojan@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-02 00:44:47 +0000
commit04b4a6c37ac2250bc4e7230c24801d5cf9ffd8e7 (patch)
tree1e67976bfec449d5f6c4b209630491a4bfde3ffc /chrome/browser/tab_contents_delegate.h
parent9e43dae7106b6064ebc6580fe111568f1cbdd393 (diff)
downloadchromium_src-04b4a6c37ac2250bc4e7230c24801d5cf9ffd8e7.zip
chromium_src-04b4a6c37ac2250bc4e7230c24801d5cf9ffd8e7.tar.gz
chromium_src-04b4a6c37ac2250bc4e7230c24801d5cf9ffd8e7.tar.bz2
A bunch of cleanups to beforeunload/unload handling.
1. Remove all the is_closing_browser plumbing. WebContents/TabContents/RenderViewHost/etc really shouldn't (and don't!) need to know anything about whether we're closing the browser or not. 2. Refactor the handling of beforeunload/unload state in browser.cc. I think this makes it considerably easier to reason about the correctness of it. 3. Added a couple TODOs for future cleanups that would have made this change a bit too large. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/tab_contents_delegate.h')
-rw-r--r--chrome/browser/tab_contents_delegate.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/chrome/browser/tab_contents_delegate.h b/chrome/browser/tab_contents_delegate.h
index fc2a8c2..2dd077c7d 100644
--- a/chrome/browser/tab_contents_delegate.h
+++ b/chrome/browser/tab_contents_delegate.h
@@ -182,8 +182,14 @@ class TabContentsDelegate : public PageNavigator {
// Tells us that we've finished firing this tab's beforeunload event.
// The proceed bool tells us whether the user chose to proceed closing the
- // tab.
- virtual void BeforeUnloadFired(TabContents* tab, bool proceed) {}
+ // tab. Returns true if the tab can continue on firing it's unload event.
+ // If we're closing the entire browser, then we'll want to delay firing
+ // unload events until all the beforeunload events have fired.
+ virtual void BeforeUnloadFired(TabContents* tab,
+ bool proceed,
+ bool* proceed_to_fire_unload) {
+ *proceed_to_fire_unload = true;
+ }
// Tells us that we've finished firing this tab's unload event.
virtual void UnloadFired(TabContents* tab) {}