* Electron Version: latest
* Operating System (Platform and Version): mac
* Last known working Electron version: n/a

**Expected Behavior**
When the tray icon menu is popped up manually (but on a tray click event callback), I expect the menu to open up but not necessarily block the main process.

**Actual behavior**
It blocks the main process until the menu is closed. This is creating issues with other timers etc that I have running on the main process.



shell/browser/api/atom_api_menu.h
void OnMenuWillShow(ui::SimpleMenuModel* source) override;
  virtual void PopupAt(TopLevelWindow* window,
                       int x,
                       int y,
                       int positioning_item,
                       const base::Closure& callback) = 0;
  virtual void ClosePopupAt(int32_t window_id) = 0;
  std::unique_ptr<AtomMenuModel> model_;
  Menu* parent_ = nullptr;
  
  void OnMenuWillClose() override;
  void OnMenuWillShow() override;
 private:
  void InsertItemAt(int index, int command_id, const base::string16& label);
  void InsertSeparatorAt(int index);
  void InsertCheckItemAt(int index,
                         int command_id,
                         const base::string16& label);
  void InsertRadioItemAt(int index,
                         int command_id,
                         const base::string16& label,
                         int group_id);
  void InsertSubMenuAt(int index,
                       int command_id,
                       const base::string16& label,
                       Menu* menu);
  void SetIcon(int index, const gfx::Image& image);
  void SetSublabel(int index, const base::string16& sublabel);
  void SetRole(int index, const base::string16& role);
  void Clear();