| Index: chrome/browser/ui/cocoa/browser_window_controller.mm
|
| diff --git a/chrome/browser/ui/cocoa/browser_window_controller.mm b/chrome/browser/ui/cocoa/browser_window_controller.mm
|
| index 232a11952408d0a771340e36f51c3749b97b4ade..9c637694dab9e74dfe3286c27a0f4d2cbed505b8 100644
|
| --- a/chrome/browser/ui/cocoa/browser_window_controller.mm
|
| +++ b/chrome/browser/ui/cocoa/browser_window_controller.mm
|
| @@ -594,11 +594,18 @@ enum {
|
| [self saveWindowPositionIfNeeded];
|
|
|
| if (!browser_->tab_strip_model()->empty()) {
|
| - // Tab strip isn't empty. Hide the frame (so it appears to have closed
|
| + // Tab strip isn't empty. Hide the window (so it appears to have closed
|
| // immediately) and close all the tabs, allowing the renderers to shut
|
| // down. When the tab strip is empty we'll be called back again.
|
| [[self window] orderOut:self];
|
| browser_->OnWindowClosing();
|
| + browser_->tab_strip_model()->CloseAllTabs();
|
| + return NO;
|
| + } else if (!browser_->HasCompletedUnloadProcessing()) {
|
| + // The browser needs to finish running unload handlers.
|
| + // Hide the window (so it appears to have closed immediately), and
|
| + // the browser will call us back again when it is ready to close.
|
| + [[self window] orderOut:self];
|
| return NO;
|
| }
|
|
|
|
|