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, |
sky
2017/03/31 14:23:41
And remove this notification too?
Alexey Seren
2017/04/02 12:02:35
As like as NOTIFICATION_BROWSER_CLOSE_CANCELLED, t
| |
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); |
96 | 97 |
97 browser->UnregisterKeepAlive(); | 98 browser->UnregisterKeepAlive(); |
98 | 99 |
(...skipping 143 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::NotifyBrowserWindowClosing(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.OnBrowserWindowClosing(browser); | |
261 } | |
262 | |
263 // static | |
264 void BrowserList::NotifyBrowserCloseCancelled(Browser* browser) { | |
265 RemoveBrowserFrom(browser, &GetInstance()->currently_closing_browsers_); | |
266 | |
267 for (chrome::BrowserListObserver& observer : observers_.Get()) | |
268 observer.OnBrowserCloseCancelled(browser); | |
269 } | |
270 | |
271 // static | |
252 bool BrowserList::IsIncognitoSessionActive() { | 272 bool BrowserList::IsIncognitoSessionActive() { |
253 for (auto* browser : *BrowserList::GetInstance()) { | 273 for (auto* browser : *BrowserList::GetInstance()) { |
254 if (browser->profile()->IsOffTheRecord()) | 274 if (browser->profile()->IsOffTheRecord()) |
255 return true; | 275 return true; |
256 } | 276 } |
257 return false; | 277 return false; |
258 } | 278 } |
259 | 279 |
260 // static | 280 // static |
261 bool BrowserList::IsIncognitoSessionActiveForProfile(Profile* profile) { | 281 bool BrowserList::IsIncognitoSessionActiveForProfile(Profile* profile) { |
(...skipping 16 matching lines...) Expand all Loading... | |
278 } | 298 } |
279 | 299 |
280 // static | 300 // static |
281 void BrowserList::RemoveBrowserFrom(Browser* browser, | 301 void BrowserList::RemoveBrowserFrom(Browser* browser, |
282 BrowserVector* browser_list) { | 302 BrowserVector* browser_list) { |
283 BrowserVector::iterator remove_browser = | 303 BrowserVector::iterator remove_browser = |
284 std::find(browser_list->begin(), browser_list->end(), browser); | 304 std::find(browser_list->begin(), browser_list->end(), browser); |
285 if (remove_browser != browser_list->end()) | 305 if (remove_browser != browser_list->end()) |
286 browser_list->erase(remove_browser); | 306 browser_list->erase(remove_browser); |
287 } | 307 } |
OLD | NEW |