* 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
}
void DesktopCapturer::OnSourceNameChanged(int index) {
}
void DesktopCapturer::OnSourceThumbnailChanged(int index) {
}
bool DesktopCapturer::OnRefreshFinished() {
  Emit("finished", media_list_->GetSources());
  return false;
}
mate::Handle<DesktopCapturer> DesktopCapturer::Create(v8::Isolate* isolate) {
  return mate::CreateHandle(isolate, new DesktopCapturer(isolate));
}
void DesktopCapturer::BuildPrototype(
    v8::Isolate* isolate, v8::Local<v8::FunctionTemplate> prototype) {
  prototype->SetClassName(mate::StringToV8(isolate, "DesktopCapturer"));
  mate::ObjectTemplateBuilder(isolate, prototype->PrototypeTemplate())
      .SetMethod("startHandling", &DesktopCapturer::StartHandling);
}
}  
}  
namespace {
void Initialize(v8::Local<v8::Object> exports, v8::Local<v8::Value> unused,
                v8::Local<v8::Context> context, void* priv) {
  v8::Isolate* isolate = context->GetIsolate();
  mate::Dictionary dict(isolate, exports);
  dict.Set("desktopCapturer", atom::api::DesktopCapturer::Create(isolate));
}
}  
NODE_MODULE_CONTEXT_AWARE_BUILTIN(atom_browser_desktop_capturer, Initialize);