Need a Linux impl for https://github.com/electron/electron/pull/12485
atom/browser/api/atom_api_top_level_window.cc
v8::Local<v8::Object> wrapper,
                               const mate::Dictionary& options)
    : TopLevelWindow(isolate, options) {
  InitWith(isolate, wrapper);
  
  window()->InitFromOptions(options);
}
TopLevelWindow::~TopLevelWindow() {
  if (!window_->IsClosed())
    window_->CloseImmediately();
  
  
  base::ThreadTaskRunnerHandle::Get()->DeleteSoon(FROM_HERE, window_.release());
}
void TopLevelWindow::InitWith(v8::Isolate* isolate,
                              v8::Local<v8::Object> wrapper) {
  AttachAsUserData(window_.get());
  mate::TrackableObject<TopLevelWindow>::InitWith(isolate, wrapper);
  
  
  if (!parent_window_.IsEmpty()) {
    mate::Handle<TopLevelWindow> parent;
    mate::ConvertFromV8(isolate, GetParentWindow(), &parent);
    DCHECK(!parent.IsEmpty());
    parent->child_windows_.Set(isolate, weak_map_id(), wrapper);
  }
}
void TopLevelWindow::WillCloseWindow(bool* prevent_default) {