* Electron Version: 2.0.0 & 1.8.6
* Operating System (Platform and Version): Windows 10 Pro, build: 1803
* Last known working Electron version: /

**Expected Behavior**
I expect the value set for a browser window width to be respected across all platforms.

**Actual behavior**
When browser window width is set to 60, it's actually using 48, when it's 55, it's using 28, and when it's 50, it's using 8 as width. Somewhere around ~70+ it starts respecting the value that's set. For some reason, its scalling it.

**To Reproduce**
set browser window options to the following:
```
{
      width: 50,
      height: 665,
      alwaysOnTop: true,
      frame: false,
      show: false,
      transparent: true,
      hasShadow: false,
      resizable: false,
      movable: false,
    }
```

I dont know if it will reproduce with `npm start` on windows, so I have included electron-build.

```
git clone git@github.com:alexa026/electron-demo.git
npm install
npm start      or     npm run build-win
```


**Screenshots**
This is how it looks with width: 50:
<img width="494" alt="screen shot 2018-05-10 at 17 00 38" src="https://user-images.githubusercontent.com/139744/39876833-84eefa2a-5474-11e8-9724-b320df9392ad.png">

This is with width: 70px, although its a litle too big for us, because it is adding additional transparent space that we dont want.
<img width="415" alt="screen shot 2018-05-10 at 17 13 12" src="https://user-images.githubusercontent.com/139744/39877183-84947c66-5475-11e8-9ff6-0364507aa798.png">

**Additional Information**
Not sure if it matters, but the resolution of windows machine is 1680x1050.
Height is respected (as its 665px I guess).
On macOS (retina) it works fine even with 50 width.
When I set `transparent: false`, it's adding the background we don't want, but the width is right how its supposed to be.
atom/browser/ui/views/frameless_view.cc
gfx::Path* window_mask) {}
void FramelessView::ResetWindowControls() {}
void FramelessView::UpdateWindowIcon() {}
void FramelessView::UpdateWindowTitle() {}
void FramelessView::SizeConstraintsChanged() {}
gfx::Size FramelessView::CalculatePreferredSize() const {
  return frame_->non_client_view()
      ->GetWindowBoundsForClientBounds(
          gfx::Rect(frame_->client_view()->GetPreferredSize()))
      .size();
}
gfx::Size FramelessView::GetMinimumSize() const {
  return window_->GetContentSizeConstraints().GetMinimumSize();
}
gfx::Size FramelessView::GetMaximumSize() const {
  return window_->GetContentSizeConstraints().GetMaximumSize();
}
const char* FramelessView::GetClassName() const {
  return kViewClassName;
}
}