Would it be possible to add methods and/or events to expose the visibility state of Menu instances? For example methods like `Menu#isVisible()` and `Menu#isHidden()` and events like "show" and "hide".
shell/browser/ui/tray_icon.h
struct BalloonOptions {
    IconType icon_type = IconType::Custom;
#if defined(OS_WIN)
    HICON icon = nullptr;
#else
    gfx::Image icon;
#endif
    base::string16 title;
    base::string16 content;
    bool large_icon = true;
    bool no_sound = false;
    bool respect_quiet_time = false;
    BalloonOptions();
  };
  
  
  virtual void DisplayBalloon(const BalloonOptions& options);
  
  virtual void RemoveBalloon();
  
  virtual void Focus();
  
  virtual void PopUpContextMenu(const gfx::Point& pos,
                                AtomMenuModel* menu_model);
  
  virtual void SetContextMenu(AtomMenuModel* menu_model) = 0;
  
  virtual gfx::Rect GetBounds();
  void AddObserver(TrayIconObserver* obs) { observers_.AddObserver(obs); }