| Index: chrome/browser/ui/unload_controller.cc
|
| diff --git a/chrome/browser/ui/unload_controller.cc b/chrome/browser/ui/unload_controller.cc
|
| index db8b2476ddda62c63ab6d73e2d85685df8acb5c4..931d8cae412fea8036ff2bddb4ea9ac8cfe8a0bc 100644
|
| --- a/chrome/browser/ui/unload_controller.cc
|
| +++ b/chrome/browser/ui/unload_controller.cc
|
| @@ -180,6 +180,28 @@ bool UnloadController::TabsNeedBeforeUnloadFired() {
|
| return !tabs_needing_before_unload_fired_.empty();
|
| }
|
|
|
| +void UnloadController::CancelWindowClose() {
|
| + // Closing of window can be canceled from a beforeunload handler.
|
| + DCHECK(is_attempting_to_close_browser_);
|
| + tabs_needing_before_unload_fired_.clear();
|
| + for (UnloadListenerSet::iterator it = tabs_needing_unload_fired_.begin();
|
| + it != tabs_needing_unload_fired_.end(); ++it) {
|
| + DevToolsWindow::OnPageCloseCanceled(*it);
|
| + }
|
| + tabs_needing_unload_fired_.clear();
|
| + if (is_calling_before_unload_handlers()) {
|
| + base::Callback<void(bool)> on_close_confirmed = on_close_confirmed_;
|
| + on_close_confirmed_.Reset();
|
| + on_close_confirmed.Run(false);
|
| + }
|
| + is_attempting_to_close_browser_ = false;
|
| +
|
| + content::NotificationService::current()->Notify(
|
| + chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED,
|
| + content::Source<Browser>(browser_),
|
| + content::NotificationService::NoDetails());
|
| +}
|
| +
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // UnloadController, content::NotificationObserver implementation:
|
|
|
| @@ -308,28 +330,6 @@ bool UnloadController::HasCompletedUnloadProcessing() const {
|
| tabs_needing_unload_fired_.empty();
|
| }
|
|
|
| -void UnloadController::CancelWindowClose() {
|
| - // Closing of window can be canceled from a beforeunload handler.
|
| - DCHECK(is_attempting_to_close_browser_);
|
| - tabs_needing_before_unload_fired_.clear();
|
| - for (UnloadListenerSet::iterator it = tabs_needing_unload_fired_.begin();
|
| - it != tabs_needing_unload_fired_.end(); ++it) {
|
| - DevToolsWindow::OnPageCloseCanceled(*it);
|
| - }
|
| - tabs_needing_unload_fired_.clear();
|
| - if (is_calling_before_unload_handlers()) {
|
| - base::Callback<void(bool)> on_close_confirmed = on_close_confirmed_;
|
| - on_close_confirmed_.Reset();
|
| - on_close_confirmed.Run(false);
|
| - }
|
| - is_attempting_to_close_browser_ = false;
|
| -
|
| - content::NotificationService::current()->Notify(
|
| - chrome::NOTIFICATION_BROWSER_CLOSE_CANCELLED,
|
| - content::Source<Browser>(browser_),
|
| - content::NotificationService::NoDetails());
|
| -}
|
| -
|
| bool UnloadController::RemoveFromSet(UnloadListenerSet* set,
|
| content::WebContents* web_contents) {
|
| DCHECK(is_attempting_to_close_browser_);
|
|
|