Index: ash/system/tray/tray_bubble_wrapper.h |
diff --git a/ash/system/tray/tray_bubble_wrapper.h b/ash/system/tray/tray_bubble_wrapper.h |
index baa5416473806273e2be11454d33ceee1dfea8a4..562b196e818bdc7000327df8c22f8ab9582f8970 100644 |
--- a/ash/system/tray/tray_bubble_wrapper.h |
+++ b/ash/system/tray/tray_bubble_wrapper.h |
@@ -7,6 +7,7 @@ |
#include "base/basictypes.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/memory/weak_ptr.h" |
#include "ui/views/widget/widget_observer.h" |
namespace views { |
@@ -20,8 +21,8 @@ class TrayBackgroundView; |
class TrayEventFilter; |
// Creates and manages the Widget and EventFilter components of a bubble. |
- |
-class TrayBubbleWrapper : public views::WidgetObserver { |
+class TrayBubbleWrapper : public views::WidgetObserver, |
+ public base::SupportsWeakPtr<TrayBubbleWrapper> { |
public: |
TrayBubbleWrapper(TrayBackgroundView* tray, |
views::TrayBubbleView* bubble_view); |
@@ -36,8 +37,15 @@ class TrayBubbleWrapper : public views::WidgetObserver { |
const views::Widget* bubble_widget() const { return bubble_widget_; } |
private: |
+ void HideBubbleWithView(); |
+ |
+ // unowned. |tray_| owns this and it should outlive. |
TrayBackgroundView* tray_; |
- views::TrayBubbleView* bubble_view_; // unowned |
+ |
+ // unowned. |
+ views::TrayBubbleView* bubble_view_; |
+ |
+ // unowned. |
views::Widget* bubble_widget_; |
DISALLOW_COPY_AND_ASSIGN(TrayBubbleWrapper); |