Need a Linux impl for https://github.com/electron/electron/pull/12485
atom/browser/api/atom_api_top_level_window.h
void ResetBrowserView();
  
  void RemoveFromParentChildWindows();
  template <typename... Args>
  void EmitEventSoon(base::StringPiece eventName) {
    base::PostTaskWithTraits(
        FROM_HERE, {content::BrowserThread::UI},
        base::BindOnce(base::IgnoreResult(&TopLevelWindow::Emit<Args...>),
                       weak_factory_.GetWeakPtr(), eventName));
  }
#if defined(OS_WIN)
  typedef std::map<UINT, MessageCallback> MessageCallbackMap;
  MessageCallbackMap messages_callback_map_;
#endif
  v8::Global<v8::Value> content_view_;
  std::map<int32_t, v8::Global<v8::Value>> browser_views_;
  v8::Global<v8::Value> menu_;
  v8::Global<v8::Value> parent_window_;
  KeyWeakMap<int> child_windows_;
  std::unique_ptr<NativeWindow> window_;
  base::WeakPtrFactory<TopLevelWindow> weak_factory_;
};
}  
}  
namespace mate {
template <>
struct Converter<atom::NativeWindow*> {
  static bool FromV8(v8::Isolate* isolate,