OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/browser_list.h" | 5 #include "chrome/browser/ui/browser_list.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 | 76 |
77 for (chrome::BrowserListObserver& observer : observers_.Get()) | 77 for (chrome::BrowserListObserver& observer : observers_.Get()) |
78 observer.OnBrowserAdded(browser); | 78 observer.OnBrowserAdded(browser); |
79 } | 79 } |
80 | 80 |
81 // static | 81 // static |
82 void BrowserList::RemoveBrowser(Browser* browser) { | 82 void BrowserList::RemoveBrowser(Browser* browser) { |
83 // Remove |browser| from the appropriate list instance. | 83 // Remove |browser| from the appropriate list instance. |
84 BrowserList* browser_list = GetInstance(); | 84 BrowserList* browser_list = GetInstance(); |
85 RemoveBrowserFrom(browser, &browser_list->last_active_browsers_); | 85 RemoveBrowserFrom(browser, &browser_list->last_active_browsers_); |
| 86 RemoveBrowserFrom(browser, &browser_list->currently_closing_browsers_); |
86 | 87 |
87 content::NotificationService::current()->Notify( | 88 content::NotificationService::current()->Notify( |
88 chrome::NOTIFICATION_BROWSER_CLOSED, | 89 chrome::NOTIFICATION_BROWSER_CLOSED, |
89 content::Source<Browser>(browser), | 90 content::Source<Browser>(browser), |
90 content::NotificationService::NoDetails()); | 91 content::NotificationService::NoDetails()); |
91 | 92 |
92 RemoveBrowserFrom(browser, &browser_list->browsers_); | 93 RemoveBrowserFrom(browser, &browser_list->browsers_); |
93 | 94 |
94 for (chrome::BrowserListObserver& observer : observers_.Get()) | 95 for (chrome::BrowserListObserver& observer : observers_.Get()) |
95 observer.OnBrowserRemoved(browser); | 96 observer.OnBrowserRemoved(browser); |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 observer.OnBrowserSetLastActive(browser); | 243 observer.OnBrowserSetLastActive(browser); |
243 } | 244 } |
244 | 245 |
245 // static | 246 // static |
246 void BrowserList::NotifyBrowserNoLongerActive(Browser* browser) { | 247 void BrowserList::NotifyBrowserNoLongerActive(Browser* browser) { |
247 for (chrome::BrowserListObserver& observer : observers_.Get()) | 248 for (chrome::BrowserListObserver& observer : observers_.Get()) |
248 observer.OnBrowserNoLongerActive(browser); | 249 observer.OnBrowserNoLongerActive(browser); |
249 } | 250 } |
250 | 251 |
251 // static | 252 // static |
| 253 void BrowserList::NotifyBrowserCloseStarted(Browser* browser) { |
| 254 BrowserVector* currently_closing_browsers = |
| 255 &GetInstance()->currently_closing_browsers_; |
| 256 RemoveBrowserFrom(browser, currently_closing_browsers); |
| 257 currently_closing_browsers->push_back(browser); |
| 258 |
| 259 for (chrome::BrowserListObserver& observer : observers_.Get()) |
| 260 observer.OnBrowserCloseStarted(browser); |
| 261 } |
| 262 |
| 263 // static |
252 bool BrowserList::IsIncognitoSessionActive() { | 264 bool BrowserList::IsIncognitoSessionActive() { |
253 for (auto* browser : *BrowserList::GetInstance()) { | 265 for (auto* browser : *BrowserList::GetInstance()) { |
254 if (browser->profile()->IsOffTheRecord()) | 266 if (browser->profile()->IsOffTheRecord()) |
255 return true; | 267 return true; |
256 } | 268 } |
257 return false; | 269 return false; |
258 } | 270 } |
259 | 271 |
260 // static | 272 // static |
261 bool BrowserList::IsIncognitoSessionActiveForProfile(Profile* profile) { | 273 bool BrowserList::IsIncognitoSessionActiveForProfile(Profile* profile) { |
(...skipping 16 matching lines...) Expand all Loading... |
278 } | 290 } |
279 | 291 |
280 // static | 292 // static |
281 void BrowserList::RemoveBrowserFrom(Browser* browser, | 293 void BrowserList::RemoveBrowserFrom(Browser* browser, |
282 BrowserVector* browser_list) { | 294 BrowserVector* browser_list) { |
283 BrowserVector::iterator remove_browser = | 295 BrowserVector::iterator remove_browser = |
284 std::find(browser_list->begin(), browser_list->end(), browser); | 296 std::find(browser_list->begin(), browser_list->end(), browser); |
285 if (remove_browser != browser_list->end()) | 297 if (remove_browser != browser_list->end()) |
286 browser_list->erase(remove_browser); | 298 browser_list->erase(remove_browser); |
287 } | 299 } |
OLD | NEW |