Electron Version: 7.1.1
Operating System: Windows 10 (1803)

If I set the 'margins' option when call webContents.print method,
The app will crash with no error message.

```js
let { remote } = require("electron");
let webContents = remote.getCurrentWebContents();
webContents.print(
  {
    margins: {
      marginType: "custom",
      top: 30,
      bottom: 0,
      left: 0,
      right: 0
    }
  },
  (success, errorType) => {
    if (!success) console.log(errorType);
  }
);
```

shell/browser/api/electron_api_web_contents.cc
return weak_map_id();
}
v8::Local<v8::Value> Ws::Session(v8::Isolate* isolate) {
  return v8::Local<v8::Value>::New(isolate, session_);
}
content::Ws* Ws::HostWs() const {
  if (!embedder_)
    return nullptr;
  return embedder_->ontents();
}
void Ws::SetEmbedder(const Ws* embedder) {
  if (embedder) {
    NativeWindow* owner_window = nullptr;
    auto* relay = NativeWindowRelay::FromWs(embedder->ontents());
    if (relay) {
      owner_window = relay->GetNativeWindow();
    }
    if (owner_window)
      SetOwnerWindow(owner_window);
    content::RenderWidgetHostView* rwhv =
        ontents()->GetRenderWidgetHostView();
    if (rwhv) {
      rwhv->Hide();
      rwhv->Show();
    }
  }
}
void Ws::SetDevToolsWs(const Ws* devtools) {