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
void Ws::Unselect() {
  ontents()->CollapseSelection();
}
void Ws::Replace(const base::string16& word) {
  ontents()->Replace(word);
}
void Ws::ReplaceMisspelling(const base::string16& word) {
  ontents()->ReplaceMisspelling(word);
}
uint32_t Ws::FindInPage(gin_helper::Arguments* args) {
  base::string16 search_text;
  if (!args->GetNext(&search_text) || search_text.empty()) {
    args->ThrowError("Must provide a non-empty search content");
    return 0;
  }
  uint32_t request_id = GetNextRequestId();
  gin_helper::Dictionary dict;
  auto options = blink::mojom::FindOptions::New();
  if (args->GetNext(&dict)) {
    dict.Get("forward", &options->forward);
    dict.Get("matchCase", &options->match_case);
    dict.Get("findNext", &options->find_next);
  }
  ontents()->Find(request_id, search_text, std::move(options));
  return request_id;
}
void Ws::StopFindInPage(content::StopFindAction action) {
  ontents()->StopFinding(action);
}
void Ws::ShowDefinitionForSelection() {