* Electron version: 2.0.0-beta.4
* Operating system: macOS 10.13.3

### Expected behavior

A reload of the window works.

### Actual behavior

A reload of the window does not work.

### How to reproduce

* run VSCode exploration ([download](https://az764295.vo.msecnd.net/exploration/6bc3274250cc949c7fb1d654cbb6e59c8ddad697/VSCode-darwin-exploration.zip))
* run "Reload Window" command
* sometimes I see the window stay blank after doing so and checking the console I see:

```
Uncaught (in promise) Error: Cannot get property 'id' on missing remote object 3
Error: Cannot get property 'id' on missing remote object 3
    at throwRPCError (/Applications/Visual Studio Code - Exploration.app/Contents/Resources/electron.asar/browser/rpc-server.js:143:17)
    at EventEmitter.<anonymous> (/Applications/Visual Studio Code - Exploration.app/Contents/Resources/electron.asar/browser/rpc-server.js:384:7)
    at emitThree (events.js:136:13)
    at EventEmitter.emit (events.js:217:7)
    at WebContents.<anonymous> (/Applications/Visual Studio Code - Exploration.app/Contents/Resources/electron.asar/browser/api/web-contents.js:295:13)
    at emitTwo (events.js:126:13)
    at WebContents.emit (events.js:214:7)
    at throwRPCError (/Applications/Visual Studio Code - Exploration.app/Contents/Resources/electron.asar/browser/rpc-server.js:143:17)
    at EventEmitter.<anonymous> (/Applications/Visual Studio Code - Exploration.app/Contents/Resources/electron.asar/browser/rpc-server.js:384:7)
    at emitThree (events.js:136:13)
    at EventEmitter.emit (events.js:217:7)
    at WebContents.<anonymous> (/Applications/Visual Studio Code - Exploration.app/Contents/Resources/electron.asar/browser/api/web-contents.js:295:13)
    at emitTwo (events.js:126:13)
    at WebContents.emit (events.js:214:7)
    at Object.exception (/Applications/Visual Studio Code - Exploration.app/Contents/Resources/electron.asar/renderer/api/remote.js:209:30)
    at metaToValue (/Applications/Visual Studio Code - Exploration.app/Contents/Resources/electron.asar/renderer/api/remote.js:213:28)
    at Object.descriptor.get [as id] (/Applications/Visual Studio Code - Exploration.app/Contents/Resources/electron.asar/renderer/api/remote.js:132:16)
    at file:///Applications/Visual%20Studio%20Code%20-%20Exploration.app/Contents/Resources/app/out/vs/workbench/electron-browser/bootstrap/index.js:11:97
    at new Promise (<anonymous>)
    at file:///Applications/Visual%20Studio%20Code%20-%20Exploration.app/Contents/Resources/app/out/vs/workbench/electron-browser/bootstrap/index.js:10:838
```
atom/browser/api/atom_api_web_contents.cc
return weak_map_id();
}
v8::Local<v8::Value> WebContents::Session(v8::Isolate* isolate) {
  return v8::Local<v8::Value>::New(isolate, session_);
}
content::WebContents* WebContents::HostWebContents() {
  if (!embedder_)
    return nullptr;
  return embedder_->web_contents();
}
void WebContents::SetEmbedder(const WebContents* embedder) {
  if (embedder) {
    NativeWindow* owner_window = nullptr;
    auto relay = NativeWindowRelay::FromWebContents(embedder->web_contents());
    if (relay) {
      owner_window = relay->window.get();
    }
    if (owner_window)
      SetOwnerWindow(owner_window);
    content::RenderWidgetHostView* rwhv =
        web_contents()->GetRenderWidgetHostView();
    if (rwhv) {
      rwhv->Hide();
      rwhv->Show();
    }
  }
}
void WebContents::SetDevToolsWebContents(const WebContents* devtools) {