Index: chrome/browser/ui/views/toolbar/browser_actions_container.h |
diff --git a/chrome/browser/ui/views/toolbar/browser_actions_container.h b/chrome/browser/ui/views/toolbar/browser_actions_container.h |
index ab40e10dccbd61eefaeba677c9e4c62faf4bc539..94ebf436c63105b35e0b9eb76dae33c1adfaccfb 100644 |
--- a/chrome/browser/ui/views/toolbar/browser_actions_container.h |
+++ b/chrome/browser/ui/views/toolbar/browser_actions_container.h |
@@ -18,6 +18,7 @@ |
#include "ui/views/controls/resize_area_delegate.h" |
#include "ui/views/drag_controller.h" |
#include "ui/views/view.h" |
+#include "ui/views/widget/widget_observer.h" |
class BrowserActionsContainerObserver; |
class ExtensionPopup; |
@@ -29,6 +30,7 @@ class Extension; |
} |
namespace views { |
+class BubbleDelegateView; |
class ResizeArea; |
} |
@@ -125,6 +127,7 @@ class BrowserActionsContainer |
public views::ResizeAreaDelegate, |
public gfx::AnimationDelegate, |
public ToolbarActionView::Delegate, |
+ public views::WidgetObserver, |
public extensions::ExtensionKeybindingRegistry::Delegate { |
public: |
// Constructs a BrowserActionContainer for a particular |browser| object. For |
@@ -252,6 +255,13 @@ class BrowserActionsContainer |
bool IsPopupRunning() const override; |
void OnOverflowedActionWantsToRunChanged( |
bool overflowed_action_wants_to_run) override; |
+ void ShowExtensionMessageBubble( |
+ scoped_ptr<extensions::ExtensionMessageBubbleController> controller) |
+ override; |
+ |
+ // views::WidgetObserver: |
+ void OnWidgetClosing(views::Widget* widget) override; |
+ void OnWidgetDestroying(views::Widget* widget) override; |
// Overridden from extension::ExtensionKeybindingRegistry::Delegate: |
extensions::ActiveTabPermissionGranter* GetActiveTabPermissionGranter() |
@@ -260,6 +270,8 @@ class BrowserActionsContainer |
// Retrieve the current popup. This should only be used by unit tests. |
gfx::NativeView TestGetPopup(); |
+ views::BubbleDelegateView* active_bubble() { return active_bubble_; } |
+ |
protected: |
// Overridden from views::View: |
void ViewHierarchyChanged( |
@@ -275,6 +287,9 @@ class BrowserActionsContainer |
void LoadImages(); |
+ // Clears the |active_bubble_|, and unregisters the container as an observer. |
+ void ClearActiveBubble(views::Widget* widget); |
+ |
const ToolbarActionsBar::PlatformSettings& platform_settings() const { |
return toolbar_actions_bar_->platform_settings(); |
} |
@@ -342,6 +357,13 @@ class BrowserActionsContainer |
// The class that registers for keyboard shortcuts for extension commands. |
scoped_ptr<ExtensionKeybindingRegistryViews> extension_keybinding_registry_; |
+ // The controller of the bubble to show once animation finishes, if any. |
+ scoped_ptr<extensions::ExtensionMessageBubbleController> |
+ pending_extension_bubble_controller_; |
+ |
+ // The extension bubble that is actively showing, if any. |
+ views::BubbleDelegateView* active_bubble_; |
+ |
ObserverList<BrowserActionsContainerObserver> observers_; |
DISALLOW_COPY_AND_ASSIGN(BrowserActionsContainer); |