| Index: ash/system/tray/system_tray_bubble.h
 | 
| diff --git a/ash/system/tray/system_tray_bubble.h b/ash/system/tray/system_tray_bubble.h
 | 
| index fbb2bc0eca3903c06970729faca7f2680cea219b..db313948edea00d2e846c6876b39fd98a2bea7ce 100644
 | 
| --- a/ash/system/tray/system_tray_bubble.h
 | 
| +++ b/ash/system/tray/system_tray_bubble.h
 | 
| @@ -6,12 +6,12 @@
 | 
|  #define ASH_SYSTEM_TRAY_SYSTEM_TRAY_BUBBLE_H_
 | 
|  #pragma once
 | 
|  
 | 
| +#include "ash/system/tray/system_tray_bubble_view.h"
 | 
|  #include "ash/system/user/login_status.h"
 | 
|  #include "ash/wm/shelf_auto_hide_behavior.h"
 | 
|  #include "base/base_export.h"
 | 
|  #include "base/timer.h"
 | 
|  #include "ui/aura/event_filter.h"
 | 
| -#include "ui/views/bubble/bubble_delegate.h"
 | 
|  #include "ui/views/widget/widget.h"
 | 
|  
 | 
|  #include <vector>
 | 
| @@ -27,52 +27,9 @@ class SystemTrayItem;
 | 
|  
 | 
|  namespace internal {
 | 
|  
 | 
| -class SystemTrayBubble;
 | 
| -
 | 
| -class SystemTrayBubbleView : public views::BubbleDelegateView {
 | 
| - public:
 | 
| -  SystemTrayBubbleView(views::View* anchor,
 | 
| -                       views::BubbleBorder::ArrowLocation arrow_location,
 | 
| -                       SystemTrayBubble* host,
 | 
| -                       bool can_activate);
 | 
| -  virtual ~SystemTrayBubbleView();
 | 
| -
 | 
| -  void SetBubbleBorder(views::BubbleBorder* border);
 | 
| -
 | 
| -  void UpdateAnchor();
 | 
| -
 | 
| -  // Called when the host is destroyed.
 | 
| -  void reset_host() { host_ = NULL; }
 | 
| -
 | 
| - private:
 | 
| -  friend class SystemTrayBubble;
 | 
| -
 | 
| -  // Overridden from views::BubbleDelegateView.
 | 
| -  virtual void Init() OVERRIDE;
 | 
| -  virtual gfx::Rect GetAnchorRect() OVERRIDE;
 | 
| -  virtual bool CanActivate() const OVERRIDE;
 | 
| -
 | 
| -  // Overridden from views::View.
 | 
| -  virtual gfx::Size GetPreferredSize() OVERRIDE;
 | 
| -  virtual void OnMouseEntered(const views::MouseEvent& event) OVERRIDE;
 | 
| -  virtual void OnMouseExited(const views::MouseEvent& event) OVERRIDE;
 | 
| -  virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE;
 | 
| -  virtual void ChildPreferredSizeChanged(View* child) OVERRIDE;
 | 
| -  virtual void ViewHierarchyChanged(bool is_add,
 | 
| -                                    views::View* parent,
 | 
| -                                    views::View* child) OVERRIDE;
 | 
| -
 | 
| -  void set_max_height(int height) { max_height_ = height; }
 | 
| -
 | 
| -  SystemTrayBubble* host_;
 | 
| -  bool can_activate_;
 | 
| -  int max_height_;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(SystemTrayBubbleView);
 | 
| -};
 | 
| -
 | 
|  class SystemTrayBubble : public aura::EventFilter,
 | 
| -                         public views::Widget::Observer {
 | 
| +                         public views::Widget::Observer,
 | 
| +                         public SystemTrayBubbleView::Host {
 | 
|   public:
 | 
|    enum BubbleType {
 | 
|      BUBBLE_TYPE_DEFAULT,
 | 
| @@ -109,7 +66,11 @@ class SystemTrayBubble : public aura::EventFilter,
 | 
|    // Also creates |bubble_widget_| and sets up animations.
 | 
|    void InitView(const InitParams& init_params);
 | 
|  
 | 
| -  gfx::Rect GetAnchorRect() const;
 | 
| +  // Overridden from SystemTrayBubbleView::Host.
 | 
| +  virtual void BubbleViewDestroyed() OVERRIDE;
 | 
| +  virtual gfx::Rect GetAnchorRect() const OVERRIDE;
 | 
| +  virtual void OnMouseEnteredView() OVERRIDE;
 | 
| +  virtual void OnMouseExitedView() OVERRIDE;
 | 
|  
 | 
|    BubbleType bubble_type() const { return bubble_type_; }
 | 
|    SystemTrayBubbleView* bubble_view() const { return bubble_view_; }
 | 
| @@ -119,6 +80,8 @@ class SystemTrayBubble : public aura::EventFilter,
 | 
|    void StopAutoCloseTimer();
 | 
|    void RestartAutoCloseTimer();
 | 
|    void Close();
 | 
| +  void SetVisible(bool is_visible);
 | 
| +  bool IsVisible();
 | 
|  
 | 
|   private:
 | 
|    void CreateItemViews(user::LoginStatus login_status);
 | 
| 
 |