| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/browser.h" | 5 #include "chrome/browser/browser.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <shellapi.h> | 8 #include <shellapi.h> |
| 9 #include <windows.h> | 9 #include <windows.h> |
| 10 #endif // OS_WIN | 10 #endif // OS_WIN |
| (...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 801 ProcessPendingTabs(); | 801 ProcessPendingTabs(); |
| 802 return false; | 802 return false; |
| 803 } | 803 } |
| 804 | 804 |
| 805 void Browser::OnWindowClosing() { | 805 void Browser::OnWindowClosing() { |
| 806 if (!ShouldCloseWindow()) | 806 if (!ShouldCloseWindow()) |
| 807 return; | 807 return; |
| 808 | 808 |
| 809 bool exiting = false; | 809 bool exiting = false; |
| 810 | 810 |
| 811 #if defined(OS_MACOSX) | 811 // Application should shutdown on last window close if the user is explicitly |
| 812 // On Mac, closing the last window isn't usually a sign that the app is | 812 // trying to quit, or if there is nothing keeping the browser alive (such as |
| 813 // shutting down. | 813 // AppController on the Mac, or BackgroundContentsService for background |
| 814 bool should_quit_if_last_browser = browser_shutdown::IsTryingToQuit(); | 814 // pages). |
| 815 #else | 815 bool should_quit_if_last_browser = |
| 816 bool should_quit_if_last_browser = true; | 816 browser_shutdown::IsTryingToQuit() || !BrowserList::WillKeepAlive(); |
| 817 #endif | |
| 818 | 817 |
| 819 if (should_quit_if_last_browser && BrowserList::size() == 1) { | 818 if (should_quit_if_last_browser && BrowserList::size() == 1) { |
| 820 browser_shutdown::OnShutdownStarting(browser_shutdown::WINDOW_CLOSE); | 819 browser_shutdown::OnShutdownStarting(browser_shutdown::WINDOW_CLOSE); |
| 821 exiting = true; | 820 exiting = true; |
| 822 } | 821 } |
| 823 | 822 |
| 824 // Don't use HasSessionService here, we want to force creation of the | 823 // Don't use HasSessionService here, we want to force creation of the |
| 825 // session service so that user can restore what was open. | 824 // session service so that user can restore what was open. |
| 826 SessionService* session_service = profile()->GetSessionService(); | 825 SessionService* session_service = profile()->GetSessionService(); |
| 827 if (session_service) | 826 if (session_service) |
| (...skipping 3209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4037 } | 4036 } |
| 4038 | 4037 |
| 4039 bool Browser::IsPinned(TabContents* source) { | 4038 bool Browser::IsPinned(TabContents* source) { |
| 4040 int index = tabstrip_model_.GetIndexOfTabContents(source); | 4039 int index = tabstrip_model_.GetIndexOfTabContents(source); |
| 4041 if (index == TabStripModel::kNoTab) { | 4040 if (index == TabStripModel::kNoTab) { |
| 4042 NOTREACHED() << "IsPinned called for tab not in our strip"; | 4041 NOTREACHED() << "IsPinned called for tab not in our strip"; |
| 4043 return false; | 4042 return false; |
| 4044 } | 4043 } |
| 4045 return tabstrip_model_.IsTabPinned(index); | 4044 return tabstrip_model_.IsTabPinned(index); |
| 4046 } | 4045 } |
| OLD | NEW |