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

Unified Diff: chrome/browser/ui/views/toolbar/browser_actions_container.h

Issue 1087713002: [Reland] [Extensions] Make extension message bubble factory platform-abstract (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Finnur's Created 5 years, 8 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
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);

Powered by Google App Engine
This is Rietveld 408576698