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

Unified Diff: ios/chrome/browser/ui/browser_list_ios.mm

Issue 2628273004: Revert of Use ChromeBrowserStateManager instead of BrowserListIOS. (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
« 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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/chrome/browser/ui/browser_list_ios.mm
diff --git a/ios/chrome/browser/ui/browser_list_ios.mm b/ios/chrome/browser/ui/browser_list_ios.mm
new file mode 100644
index 0000000000000000000000000000000000000000..3e09bcf608dd21647e2bd92f118340d9ba561fe7
--- /dev/null
+++ b/ios/chrome/browser/ui/browser_list_ios.mm
@@ -0,0 +1,66 @@
+// Copyright 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#import "ios/chrome/browser/ui/browser_list_ios.h"
+
+#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
+#include "ios/chrome/browser/tabs/tab_model.h"
+
+BrowserListIOS::BrowserVector* BrowserListIOS::browsers_;
+
+void BrowserListIOS::AddBrowser(id<BrowserIOS> browser) {
+ EnsureBrowsersIsValid();
+ DCHECK(browser);
+ browsers_->push_back(browser);
+}
+
+void BrowserListIOS::RemoveBrowser(id<BrowserIOS> browser) {
+ if (!browsers_)
+ return;
+ DCHECK(browser);
+ const iterator remove_browser =
+ std::find(browsers_->begin(), browsers_->end(), browser);
+ if (remove_browser != browsers_->end())
+ browsers_->erase(remove_browser);
+}
+
+id<BrowserIOS> BrowserListIOS::GetLastActiveWithBrowserState(
+ ios::ChromeBrowserState* browser_state) {
+ DCHECK(browser_state);
+ for (const_iterator i = BrowserListIOS::begin(); i != BrowserListIOS::end();
+ ++i) {
+ if ([*i browserState] == browser_state)
+ return *i;
+ }
+ return NULL;
+}
+
+BrowserListIOS::const_iterator BrowserListIOS::begin() {
+ EnsureBrowsersIsValid();
+ return browsers_->begin();
+}
+
+BrowserListIOS::const_iterator BrowserListIOS::end() {
+ EnsureBrowsersIsValid();
+ return browsers_->end();
+}
+
+// static
+bool BrowserListIOS::IsOffTheRecordSessionActive() {
+ for (const_iterator i = BrowserListIOS::begin(); i != BrowserListIOS::end();
+ ++i) {
+ // Unlike desktop, an Incognito browser can exist but be empty, so filter
+ // that case out.
+ if ([*i browserState] && [*i browserState]->IsOffTheRecord() &&
+ ![[*i tabModel] isEmpty])
+ return true;
+ }
+ return false;
+}
+
+void BrowserListIOS::EnsureBrowsersIsValid() {
+ if (browsers_)
+ return;
+ browsers_ = new BrowserVector;
+}
« 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