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.cc
for (TrayIconObserver& observer : observers_)
    observer.OnBalloonClicked();
}
void TrayIcon::NotifyBalloonClosed() {
  for (TrayIconObserver& observer : observers_)
    observer.OnBalloonClosed();
}
void TrayIcon::NotifyRightClicked(const gfx::Rect& bounds, int modifiers) {
  for (TrayIconObserver& observer : observers_)
    observer.OnRightClicked(bounds, modifiers);
}
void TrayIcon::NotifyDrop() {
  for (TrayIconObserver& observer : observers_)
    observer.OnDrop();
}
void TrayIcon::NotifyDropFiles(const std::vector<std::string>& files) {
  for (TrayIconObserver& observer : observers_)
    observer.OnDropFiles(files);
}
void TrayIcon::NotifyDropText(const std::string& text) {
  for (TrayIconObserver& observer : observers_)
    observer.OnDropText(text);
}
void TrayIcon::NotifyMouseUp(const gfx::Point& location, int modifiers) {
  for (TrayIconObserver& observer : observers_)
    observer.OnMouseUp(location, modifiers);
}
void TrayIcon::NotifyMouseDown(const gfx::Point& location, int modifiers) {