* Electron version: 1.7.3 - not sure when this was introduced, works fine in latest production build based on 1.4.15
* Operating system: Windows

### Expected behavior

I have three screens connected to my computer. `desktopCapturer.getSources({types: ['screen']})` correctly identifies three sources.

I want to share my first screen and set `chromeMediaSourceId` to the matching id `screen:0:0` in the constraints when requesting the MediaStream using `navigator.mediaDevices.getUserMedia()`. I should get a MediaStream containing a video track with the content of the first screen.

### Actual behavior

The stream returned will show the  content of the second screen. If I ask for the second screen, I get the third screen. If I ask for the third screen, I get a black screen.

### How to reproduce

https://github.com/wireapp/wire-desktop

````
git clone https://github.com/wireapp/wire-desktop.git
npm install
npm run prod
````

* Log in or create a Wire account. Feel free to connect to me (@gregor)
* Start audio or video call
* Click on share your screen
* Select screen to be shared

![electron](https://user-images.githubusercontent.com/10243309/27835989-b897f902-60dd-11e7-8dfc-555b4958fc99.png)
![electron2](https://user-images.githubusercontent.com/10243309/27835988-b8943060-60dd-11e7-881c-f3dfdad6cc65.png)

atom/browser/api/atom_api_desktop_capturer.cc
#include "atom/browser/api/atom_api_desktop_capturer.h"
using base::PlatformThreadRef;
#include "atom/common/api/atom_api_native_image.h"
#include "atom/common/native_mate_converters/gfx_converter.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/media/desktop_media_list.h"
#include "native_mate/dictionary.h"
#include "third_party/webrtc/modules/desktop_capture/desktop_capture_options.h"
#include "third_party/webrtc/modules/desktop_capture/desktop_capturer.h"
#include "atom/common/node_includes.h"
namespace mate {
template<>
struct Converter<DesktopMediaList::Source> {
  static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,