| 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,
|
|
|