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;
  auto* frame_host = ontents()->GetMainFrame();
  if (frame_host) {
    auto* widget_host =
        frame_host ? frame_host->GetView()->GetRenderWidgetHost() : nullptr;
    if (!widget_host)
      return;
    widget_host->Send(
        new WidgetMsg_DisableDeviceEmulation(widget_host->GetRoutingID()));
  }
}
void Ws::ToggleDevTools() {
  if (IsDevToolsOpened())
    CloseDevTools();
  else
    OpenDevTools(nullptr);
}
void Ws::InspectElement(int x, int y) {
  if (type_ == Type::REMOTE)
    return;
  if (!enable_devtools_)
    return;
  if (!managed_ontents()->GetDevToolsWs())
    OpenDevTools(nullptr);
  managed_ontents()->InspectElement(x, y);
}
void Ws::InspectSharedWorkerById(const std::string& workerId) {
  if (type_ == Type::REMOTE)
    return;
  if (!enable_devtools_)