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

Unified Diff: ios/shared/chrome/browser/ui/browser_list/browser_list.mm

Issue 2831363002: [ios] Add a BrowserListObserver interface. (Closed)
Patch Set: Rebase. Created 3 years, 8 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
Index: ios/shared/chrome/browser/ui/browser_list/browser_list.mm
diff --git a/ios/shared/chrome/browser/ui/browser_list/browser_list.mm b/ios/shared/chrome/browser/ui/browser_list/browser_list.mm
index 10d966608d5a0f46ee4ad261f15421fe42f2ad37..94a039f48422f4e67c5ffcbe98657d42b440e23f 100644
--- a/ios/shared/chrome/browser/ui/browser_list/browser_list.mm
+++ b/ios/shared/chrome/browser/ui/browser_list/browser_list.mm
@@ -9,6 +9,7 @@
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "ios/chrome/browser/browser_state/chrome_browser_state.h"
+#import "ios/shared/chrome/browser/ui/browser_list/browser_list_observer.h"
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
@@ -58,12 +59,25 @@ int BrowserList::GetIndexOfBrowser(const Browser* browser) const {
Browser* BrowserList::CreateNewBrowser() {
browsers_.push_back(base::MakeUnique<Browser>(browser_state_));
- return browsers_.back().get();
+ Browser* browser_created = browsers_.back().get();
+ for (BrowserListObserver& observer : observers_)
+ observer.OnBrowserCreated(this, browser_created);
+ return browser_created;
}
void BrowserList::CloseBrowserAtIndex(int index) {
- DCHECK(ContainsIndex(index));
+ Browser* browser_removed = GetBrowserAtIndex(index);
+ for (BrowserListObserver& observer : observers_)
+ observer.OnBrowserRemoved(this, browser_removed);
browsers_.erase(browsers_.begin() + index);
}
+void BrowserList::AddObserver(BrowserListObserver* observer) {
+ observers_.AddObserver(observer);
+}
+
+void BrowserList::RemoveObserver(BrowserListObserver* observer) {
+ observers_.RemoveObserver(observer);
+}
+
const int BrowserList::kInvalidIndex;

Powered by Google App Engine
This is Rietveld 408576698