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
#if BUILDFLAG(ENABLE_PRINTING)
      .SetMethod("_print", &Ws::Print)
      .SetMethod("_getPrinters", &Ws::GetPrinterList)
      .SetMethod("_printToPDF", &Ws::PrintToPDF)
#endif
      .SetMethod("addWorkSpace", &Ws::AddWorkSpace)
      .SetMethod("removeWorkSpace", &Ws::RemoveWorkSpace)
      .SetMethod("showDefinitionForSelection",
                 &Ws::ShowDefinitionForSelection)
      .SetMethod("copyImageAt", &Ws::CopyImageAt)
      .SetMethod("capturePage", &Ws::CapturePage)
      .SetMethod("setEmbedder", &Ws::SetEmbedder)
      .SetMethod("setDevToolsWs", &Ws::SetDevToolsWs)
      .SetMethod("getNativeView", &Ws::GetNativeView)
      .SetMethod("incrementCapturerCount", &Ws::IncrementCapturerCount)
      .SetMethod("decrementCapturerCount", &Ws::DecrementCapturerCount)
      .SetMethod("isBeingCaptured", &Ws::IsBeingCaptured)
      .SetMethod("setWebRTCIPHandlingPolicy",
                 &Ws::SetWebRTCIPHandlingPolicy)
      .SetMethod("getWebRTCIPHandlingPolicy",
                 &Ws::GetWebRTCIPHandlingPolicy)
      .SetMethod("_grantOriginAccess", &Ws::GrantOriginAccess)
      .SetMethod("takeHeapSnapshot", &Ws::TakeHeapSnapshot)
      .SetProperty("id", &Ws::ID)
      .SetProperty("session", &Ws::Session)
      .SetProperty("hostWs", &Ws::HostWs)
      .SetProperty("devToolsWs", &Ws::DevToolsWs)
      .SetProperty("debugger", &Ws::Debugger);
}
ElectronBrowserContext* Ws::GetBrowserContext() const {