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.OnMouseDown(location, modifiers);
}
void TrayIcon::NotifyMouseEntered(const gfx::Point& location, int modifiers) {
  for (TrayIconObserver& observer : observers_)
    observer.OnMouseEntered(location, modifiers);
}
void TrayIcon::NotifyMouseExited(const gfx::Point& location, int modifiers) {
  for (TrayIconObserver& observer : observers_)
    observer.OnMouseExited(location, modifiers);
}
void TrayIcon::NotifyMouseMoved(const gfx::Point& location, int modifiers) {
  for (TrayIconObserver& observer : observers_)
    observer.OnMouseMoved(location, modifiers);
}
void TrayIcon::NotifyDragEntered() {
  for (TrayIconObserver& observer : observers_)
    observer.OnDragEntered();
}
void TrayIcon::NotifyDragExited() {
  for (TrayIconObserver& observer : observers_)
    observer.OnDragExited();
}
void TrayIcon::NotifyDragEnded() {
  for (TrayIconObserver& observer : observers_)
    observer.OnDragEnded();
}
}