summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/browser.h')
-rw-r--r--chrome/browser/browser.h28
1 files changed, 19 insertions, 9 deletions
diff --git a/chrome/browser/browser.h b/chrome/browser/browser.h
index ba4133e..a172df8 100644
--- a/chrome/browser/browser.h
+++ b/chrome/browser/browser.h
@@ -187,8 +187,12 @@ class Browser : public TabStripModelDelegate,
// 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.
- void BeforeUnloadFired(TabContents* source, 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.
+ void BeforeUnloadFired(TabContents* source,
+ bool proceed,
+ bool* proceed_to_fire_unload);
// Tells us that we've finished firing this tab's unload event.
void UnloadFired(TabContents* source);
@@ -512,13 +516,19 @@ class Browser : public TabStripModelDelegate,
TabContents* new_contents,
const gfx::Rect& initial_pos);
- // Processes the next tab that needs it's beforeunload event fired before
- // we can proceed with closing the browser.
- void ProcessPendingBeforeUnloadTabs();
+ // Processes the next tab that needs it's beforeunload/unload event fired.
+ void ProcessPendingTabs();
- // Processes the next tab that needs it's unload event fired before we can
- // proceed with closing the browser.
- void ProcessPendingUnloadTabs();
+ // Whether we've completed firing all the tabs' beforeunload/unload events.
+ bool HasCompletedUnloadProcessing();
+
+ // Clears all the state associated with processing tabs' beforeunload/unload
+ // events since the user cancelled closing the window.
+ void CancelWindowClose();
+
+ // Removes the tab from the associated vector. Returns whether the tab
+ // was in the vector in the first place.
+ bool RemoveFromVector(UnloadListenerVector* vector, TabContents* tab);
// Cleans up state appropriately when we are trying to close the browser
// and a tab crashes in it's beforeunload/unload handler.
@@ -572,7 +582,7 @@ class Browser : public TabStripModelDelegate,
// Whether we are processing the beforeunload and unload events of each tab
// in preparation for closing the browser.
- bool is_processing_tab_unload_events_;
+ bool is_attempting_to_close_browser_;
// The following factory is used for chrome update coalescing.
ScopedRunnableMethodFactory<Browser> chrome_updater_factory_;