* **Electron Version** 4.0.4
* **Operating System** Windows 10 32 bit
* **Last known working Electron version** 3.1.3

### Expected Behavior
`webContents.print()` shold send print job to a printer

### Actual behavior
Nothing happens. Callback doesn't gets called. 

`printToPDF` works though.

### To Reproduce
```
let deviceName = 'HP LaserJet 1020'
let options = {deviceName, silent: true}
win.webContents.print({}, (err) => {
    if (!err)
      console.error('printing failed')
})
```

atom/browser/api/atom_api_web_contents.cc
const base::FilePath& full_file_path,
    const content::SavePageType& save_type) {
  util::Promise promise(isolate());
  v8::Local<v8::Promise> ret = promise.GetHandle();
  auto* handler = new SavePageHandler(web_contents(), std::move(promise));
  handler->Handle(full_file_path, save_type);
  return ret;
}
void WebContents::OpenDevTools(mate::Arguments* args) {
  if (type_ == REMOTE)
    return;
  if (!enable_devtools_)
    return;
  std::string state;
  if (type_ == WEB_VIEW || !owner_window()) {
    state = "detach";
  }
  bool activate = true;
  if (args && args->Length() == 1) {
    mate::Dictionary options;
    if (args->GetNext(&options)) {
      options.Get("mode", &state);
      options.Get("activate", &activate);
    }
  }
  managed_web_contents()->SetDockState(state);
  managed_web_contents()->ShowDevTools(activate);
}
void WebContents::CloseDevTools() {