| Index: chrome/browser/api/infobars/infobar_tab_service.h
|
| diff --git a/chrome/browser/api/infobars/infobar_tab_service.h b/chrome/browser/api/infobars/infobar_tab_service.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c99cb81ad87963ef56e60cbc77fddbb5cfd240b6
|
| --- /dev/null
|
| +++ b/chrome/browser/api/infobars/infobar_tab_service.h
|
| @@ -0,0 +1,63 @@
|
| +// Copyright (c) 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.
|
| +
|
| +#ifndef CHROME_BROWSER_API_INFOBARS_INFOBAR_TAB_SERVICE_H_
|
| +#define CHROME_BROWSER_API_INFOBARS_INFOBAR_TAB_SERVICE_H_
|
| +
|
| +namespace content {
|
| +class WebContents;
|
| +}
|
| +
|
| +class InfoBarDelegate;
|
| +class TabContents;
|
| +
|
| +// Provides access to creating, removing and enumerating info bars
|
| +// attached to a tab.
|
| +class InfoBarTabService {
|
| + public:
|
| + // Retrieves the InfoBarTabService for a given tab.
|
| + static InfoBarTabService* ForTab(TabContents* tab_contents);
|
| +
|
| + virtual ~InfoBarTabService() {}
|
| +
|
| + // Adds an InfoBar for the specified |delegate|.
|
| + //
|
| + // 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.
|
| + //
|
| + // Returns whether |delegate| was successfully added.
|
| + virtual bool AddInfoBar(InfoBarDelegate* delegate) = 0;
|
| +
|
| + // Removes the InfoBar for the specified |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).
|
| + virtual void RemoveInfoBar(InfoBarDelegate* delegate) = 0;
|
| +
|
| + // Replaces one infobar with another, without any animation in between.
|
| + //
|
| + // If infobars are disabled for this tab, |new_delegate| is closed immediately
|
| + // without being added, and nothing else happens.
|
| + //
|
| + // Returns whether |new_delegate| was successfully added.
|
| + //
|
| + // NOTE: This does not perform any EqualsDelegate() checks like AddInfoBar().
|
| + virtual bool ReplaceInfoBar(InfoBarDelegate* old_delegate,
|
| + InfoBarDelegate* new_delegate) = 0;
|
| +
|
| + // Returns the number of infobars for this tab.
|
| + virtual size_t GetInfoBarCount() const = 0;
|
| +
|
| + // Returns the infobar at the given |index|.
|
| + //
|
| + // Warning: Does not sanity check |index|.
|
| + virtual InfoBarDelegate* GetInfoBarDelegateAt(size_t index) = 0;
|
| +
|
| + // Retrieve the WebContents for the tab this service is associated with.
|
| + virtual content::WebContents* GetWebContents() = 0;
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_API_INFOBARS_INFOBAR_TAB_SERVICE_H_
|
|
|