Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Side by Side Diff: ios/chrome/browser/ui/browser_list_ios.mm

Issue 2615003002: Use ChromeBrowserStateManager instead of BrowserListIOS. (Closed)
Patch Set: Fix ios_chrome_perftests. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #import "ios/chrome/browser/ui/browser_list_ios.h"
6
7 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
8 #include "ios/chrome/browser/tabs/tab_model.h"
9
10 BrowserListIOS::BrowserVector* BrowserListIOS::browsers_;
11
12 void BrowserListIOS::AddBrowser(id<BrowserIOS> browser) {
13 EnsureBrowsersIsValid();
14 DCHECK(browser);
15 browsers_->push_back(browser);
16 }
17
18 void BrowserListIOS::RemoveBrowser(id<BrowserIOS> browser) {
19 if (!browsers_)
20 return;
21 DCHECK(browser);
22 const iterator remove_browser =
23 std::find(browsers_->begin(), browsers_->end(), browser);
24 if (remove_browser != browsers_->end())
25 browsers_->erase(remove_browser);
26 }
27
28 id<BrowserIOS> BrowserListIOS::GetLastActiveWithBrowserState(
29 ios::ChromeBrowserState* browser_state) {
30 DCHECK(browser_state);
31 for (const_iterator i = BrowserListIOS::begin(); i != BrowserListIOS::end();
32 ++i) {
33 if ([*i browserState] == browser_state)
34 return *i;
35 }
36 return NULL;
37 }
38
39 BrowserListIOS::const_iterator BrowserListIOS::begin() {
40 EnsureBrowsersIsValid();
41 return browsers_->begin();
42 }
43
44 BrowserListIOS::const_iterator BrowserListIOS::end() {
45 EnsureBrowsersIsValid();
46 return browsers_->end();
47 }
48
49 // static
50 bool BrowserListIOS::IsOffTheRecordSessionActive() {
51 for (const_iterator i = BrowserListIOS::begin(); i != BrowserListIOS::end();
52 ++i) {
53 // Unlike desktop, an Incognito browser can exist but be empty, so filter
54 // that case out.
55 if ([*i browserState] && [*i browserState]->IsOffTheRecord() &&
56 ![[*i tabModel] isEmpty])
57 return true;
58 }
59 return false;
60 }
61
62 void BrowserListIOS::EnsureBrowsersIsValid() {
63 if (browsers_)
64 return;
65 browsers_ = new BrowserVector;
66 }
OLDNEW
« no previous file with comments | « ios/chrome/browser/ui/browser_list_ios.h ('k') | ios/chrome/browser/ui/browser_view_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698