* **Electron Version** (output of `node_modules/.bin/electron --version`):
  * v4.0.5
* **Operating System** (Platform and Version):
  *  Windows 10 

### Expected Behavior
using  webContents api to print an html file oriention  set to landscape in default printer settings and page size set to A5, 

mainWindow.webContents.print({ silent: true, printBackground: false, deviceName: 'HP LaserJet 1020' })

My issue is : it is not printing as defined in the default printer settings

but it currently printing is deviceName not set

and need to send mainWindow.webContents.print() api to silently and printer name 

### To Reproduce
If you provide a URL, please list the commands required to clone/setup/run your repo e.g.
```sh
$ git clone git@github.com:shabeer-mdy/electron-quick-start.git
$ npm install
$ npm start || electron .
```
and set any printer name to  mainWindow.webContents.print({ silent: true, printBackground: false, deviceName: 'HP LaserJet 1020' })

set any installed printer name 



shell/browser/api/atom_api_web_contents.cc
std::unique_ptr<content::WebContents> web_contents,
                         Type type)
    : content::WebContentsObserver(web_contents.get()),
      type_(type),
      weak_factory_(this) {
  DCHECK(type != Type::REMOTE)
      << "Can't take ownership of a remote WebContents";
  auto session = Session::CreateFrom(isolate, GetBrowserContext());
  session_.Reset(isolate, session.ToV8());
  InitWithSessionAndOptions(isolate, std::move(web_contents), session,
                            mate::Dictionary::CreateEmpty(isolate));
}
WebContents::WebContents(v8::Isolate* isolate, const mate::Dictionary& options)
    : weak_factory_(this) {
  
  options.Get("backgroundThrottling", &background_throttling_);
  
  options.Get("type", &type_);
#if BUILDFLAG(ENABLE_OSR)
  bool b = false;
  if (options.Get(options::kOffscreen, &b) && b)
    type_ = Type::OFF_SCREEN;
#endif
  
  options.Get("embedder", &embedder_);
  
  options.Get("devTools", &enable_devtools_);
  
  std::string partition;