Index: chrome/browser/tab_contents/tab_contents.h |
=================================================================== |
--- chrome/browser/tab_contents/tab_contents.h (revision 65711) |
+++ chrome/browser/tab_contents/tab_contents.h (working copy) |
@@ -457,20 +457,31 @@ |
// Infobars ------------------------------------------------------------------ |
- // Adds an InfoBar for the specified |delegate|. |
+ // Adds an InfoBar for the specified |delegate|. The TabContents takes |
+ // ownership of |delegate| and will close it when it is removed or the tab is |
+ // closed. If infobars are disabled for this tab or the tab already has a |
+ // delegate which returns true for InfoBarDelegate::EqualsDelegate(delegate), |
+ // |delegate| is closed immediately without being added. |
virtual void AddInfoBar(InfoBarDelegate* delegate); |
- // Removes the InfoBar for the specified |delegate|. |
+ // Removes the InfoBar for the specified |delegate|. This will synchronously |
+ // trigger delegate->InfoBarClosed() (which generally deletes the delegate). |
+ // If infobars are disabled for this tab, this will do nothing, on the |
+ // assumption that the matching AddInfoBar() call will have already closed the |
+ // delegate (see above). |
void RemoveInfoBar(InfoBarDelegate* delegate); |
- // Replaces one infobar with another, without any animation in between. |
+ // Replaces one infobar with another, without any animation in between. This |
+ // will synchronously close |old_delegate|. If infobars are disabled for this |
+ // tab, |new_delegate| is closed immediately without being added. |
+ // NOTE: This does not perform any EqualsDelegate() checks like AddInfoBar(). |
void ReplaceInfoBar(InfoBarDelegate* old_delegate, |
InfoBarDelegate* new_delegate); |
// Enumeration and access functions. |
int infobar_delegate_count() const { return infobar_delegates_.size(); } |
InfoBarDelegate* GetInfoBarDelegateAt(int index) { |
- return infobar_delegates_.at(index); |
+ return infobar_delegates_[index]; |
} |
// Toolbars and such --------------------------------------------------------- |
@@ -1191,7 +1202,8 @@ |
// Data for shelves and stuff ------------------------------------------------ |
// Delegates for InfoBars associated with this TabContents. |
- std::vector<InfoBarDelegate*> infobar_delegates_; |
+ typedef std::vector<InfoBarDelegate*> InfoBarDelegates; |
+ InfoBarDelegates infobar_delegates_; |
// Data for find in page ----------------------------------------------------- |