Index: chrome/browser/ui/browser.h |
=================================================================== |
--- chrome/browser/ui/browser.h (revision 145675) |
+++ chrome/browser/ui/browser.h (working copy) |
@@ -68,6 +68,7 @@ |
namespace chrome { |
class BrowserCommandController; |
+class UnloadController; |
namespace search { |
class SearchDelegate; |
class SearchModel; |
@@ -306,9 +307,7 @@ |
// Gives beforeunload handlers the chance to cancel the close. |
bool ShouldCloseWindow(); |
- bool IsAttemptingToCloseBrowser() const { |
- return is_attempting_to_close_browser_; |
- } |
+ bool IsAttemptingToCloseBrowser() const; |
// Invoked when the window containing us is closing. Performs the necessary |
// cleanup. |
@@ -796,37 +795,6 @@ |
// >= index. |
void SyncHistoryWithTabs(int index); |
- // OnBeforeUnload handling ////////////////////////////////////////////////// |
- |
- typedef std::set<content::WebContents*> UnloadListenerSet; |
- |
- // Processes the next tab that needs it's beforeunload/unload event fired. |
- void ProcessPendingTabs(); |
- |
- // Whether we've completed firing all the tabs' beforeunload/unload events. |
- bool HasCompletedUnloadProcessing() const; |
- |
- // Clears all the state associated with processing tabs' beforeunload/unload |
- // events since the user cancelled closing the window. |
- void CancelWindowClose(); |
- |
- // Removes |web_contents| from the passed |set|. |
- // Returns whether the tab was in the set in the first place. |
- // TODO(beng): this method needs a better name! |
- bool RemoveFromSet(UnloadListenerSet* set, |
- content::WebContents* web_contents); |
- |
- // Cleans up state appropriately when we are trying to close the browser and |
- // the tab has finished firing its unload handler. We also use this in the |
- // cases where a tab crashes or hangs even if the beforeunload/unload haven't |
- // successfully fired. If |process_now| is true |ProcessPendingTabs| is |
- // invoked immediately, otherwise it is invoked after a delay (PostTask). |
- // |
- // Typically you'll want to pass in true for |process_now|. Passing in true |
- // may result in deleting |tab|. If you know that shouldn't happen (because of |
- // the state of the stack), pass in false. |
- void ClearUnloadState(content::WebContents* web_contents, bool process_now); |
- |
// In-progress download termination handling ///////////////////////////////// |
// Called when the window is closing to check if potential in-progress |
@@ -935,20 +903,6 @@ |
// The following factory is used for chrome update coalescing. |
base::WeakPtrFactory<Browser> chrome_updater_factory_; |
- // OnBeforeUnload handling ////////////////////////////////////////////////// |
- |
- // Tracks tabs that need there beforeunload event fired before we can |
- // close the browser. Only gets populated when we try to close the browser. |
- UnloadListenerSet tabs_needing_before_unload_fired_; |
- |
- // Tracks tabs that need there unload event fired before we can |
- // close the browser. Only gets populated when we try to close the browser. |
- UnloadListenerSet tabs_needing_unload_fired_; |
- |
- // Whether we are processing the beforeunload and unload events of each tab |
- // in preparation for closing the browser. |
- bool is_attempting_to_close_browser_; |
- |
// In-progress download termination handling ///////////////////////////////// |
enum CancelDownloadConfirmationState { |
@@ -976,6 +930,8 @@ |
// Tracks when this browser is being created by session restore. |
bool is_session_restore_; |
+ scoped_ptr<chrome::UnloadController> unload_controller_; |
+ |
// The following factory is used to close the frame at a later time. |
base::WeakPtrFactory<Browser> weak_factory_; |