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

Unified Diff: chrome/browser/extensions/api/debugger/debugger_api.cc

Issue 1400823003: Creates BrowserTabStripTracker to consolidate common code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review feedback and git cl format Created 5 years, 2 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 | « no previous file | chrome/browser/extensions/api/tabs/tabs_event_router.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/api/debugger/debugger_api.cc
diff --git a/chrome/browser/extensions/api/debugger/debugger_api.cc b/chrome/browser/extensions/api/debugger/debugger_api.cc
index ec0d6b96476024ad0aa70691dc63fd7a85aaaefc..c06a4b89e95b342facf70167da275ed700540eca 100644
--- a/chrome/browser/extensions/api/debugger/debugger_api.cc
+++ b/chrome/browser/extensions/api/debugger/debugger_api.cc
@@ -29,8 +29,7 @@
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_list.h"
-#include "chrome/browser/ui/browser_list_observer.h"
+#include "chrome/browser/ui/browser_tab_strip_tracker.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/ui/tabs/tab_strip_model_observer.h"
#include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h"
@@ -177,8 +176,7 @@ bool ExtensionDevToolsInfoBarDelegate::Cancel() {
// is dismissed or the object itself is destroyed.
// It listens to all tabs in all browsers and adds/removes confirm infobar
// to each of the tabs.
-class GlobalConfirmInfoBar : public chrome::BrowserListObserver,
- public TabStripModelObserver,
+class GlobalConfirmInfoBar : public TabStripModelObserver,
public infobars::InfoBarManager::Observer {
public:
GlobalConfirmInfoBar(const base::Closure& dismissed_callback,
@@ -188,10 +186,6 @@ class GlobalConfirmInfoBar : public chrome::BrowserListObserver,
private:
using InfoBarMap = std::map<InfoBarService*, infobars::InfoBar*>;
- // chrome::BrowserListObserver:
- void OnBrowserAdded(Browser* browser) override;
- void OnBrowserRemoved(Browser* browser) override;
-
// TabStripModelObserver:
void TabInsertedAt(content::WebContents* web_contents,
int index,
@@ -206,6 +200,7 @@ class GlobalConfirmInfoBar : public chrome::BrowserListObserver,
base::Closure dismissed_callback_;
std::string client_name_;
InfoBarMap infobars_;
+ BrowserTabStripTracker browser_tab_strip_tracker_;
DISALLOW_COPY_AND_ASSIGN(GlobalConfirmInfoBar);
};
@@ -213,10 +208,11 @@ class GlobalConfirmInfoBar : public chrome::BrowserListObserver,
GlobalConfirmInfoBar::GlobalConfirmInfoBar(
const base::Closure& dismissed_callback,
const std::string& client_name)
- : dismissed_callback_(dismissed_callback), client_name_(client_name) {
- BrowserList::AddObserver(this);
- for (Browser* browser : *BrowserList::GetInstance(chrome::GetActiveDesktop()))
- OnBrowserAdded(browser);
+ : dismissed_callback_(dismissed_callback),
+ client_name_(client_name),
+ browser_tab_strip_tracker_(this, nullptr, nullptr) {
+ browser_tab_strip_tracker_.Init(
+ BrowserTabStripTracker::InitWith::BROWSERS_IN_ACTIVE_DESKTOP);
}
GlobalConfirmInfoBar::~GlobalConfirmInfoBar() {
@@ -224,22 +220,6 @@ GlobalConfirmInfoBar::~GlobalConfirmInfoBar() {
InfoBarMap::iterator it = infobars_.begin();
it->first->RemoveInfoBar(it->second);
}
-
- for (Browser* browser : *BrowserList::GetInstance(chrome::GetActiveDesktop()))
- OnBrowserRemoved(browser);
- BrowserList::RemoveObserver(this);
-}
-
-void GlobalConfirmInfoBar::OnBrowserAdded(Browser* browser) {
- TabStripModel* tab_strip_model = browser->tab_strip_model();
- tab_strip_model->AddObserver(this);
-
- for (int index = 0; index < tab_strip_model->count(); ++index)
- TabInsertedAt(tab_strip_model->GetWebContentsAt(index), index, false);
-}
-
-void GlobalConfirmInfoBar::OnBrowserRemoved(Browser* browser) {
- browser->tab_strip_model()->RemoveObserver(this);
}
void GlobalConfirmInfoBar::TabInsertedAt(content::WebContents* web_contents,
« no previous file with comments | « no previous file | chrome/browser/extensions/api/tabs/tabs_event_router.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698