<!--
Thanks for opening an issue! A few things to keep in mind:

- The issue tracker is only for bugs and feature requests.
- Before reporting a bug, please try reproducing your issue against
  the latest version of Electron.
- If you need general advice, join our Slack: http://atom-slack.herokuapp.com
-->

* Electron version: 1.6.3
* Operating system: macOS 10.11.6

We have a few reports of crashes when waking from sleep. I went ahead & symbolicated one of them and attached it below, in case anything jumps out as an obvious mistake.

<details>

```
Process:               Slack [88838]
Path:                  /Applications/Slack.app/Contents/MacOS/Slack
Identifier:            com.tinyspeck.slackmacgap
Version:               2.6.0-alpha170330eaa48b0 (4101)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Slack [88838]
User ID:               501

Date/Time:             2017-04-05 10:01:49.718 -0700
OS Version:            Mac OS X 10.11.6 (15G1217)
Report Version:        11
Anonymous UUID:        765DA938-1843-3BCC-B543-AB7A3EBB5087

Sleep/Wake UUID:       940B9509-D363-40FC-A181-06F5C11E04DC

Time Awake Since Boot: 1200000 seconds
Time Since Wake:       40 seconds

System Integrity Protection: enabled

Crashed Thread:        0  CrBrowserMain  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x000000005ce83800
Exception Note:        EXC_CORPSE_NOTIFY

VM Regions Near 0x5ce83800:
--> 
    __TEXT                 0000000102d78000-0000000102d79000 [    4K] r-x/rwx SM=COW  /Applications/Slack.app/Contents/MacOS/Slack

Thread 0 Crashed:: CrBrowserMain  Dispatch queue: com.apple.main-thread
0   com.github.electron.framework 	content::RenderFrameHostImpl::SetNavigationHandle(std::__1::unique_ptr<content::NavigationHandleImpl, std::__1::default_delete<content::NavigationHandleImpl> >) (in Electron Framework) (memory:2577)
1   com.github.electron.framework 	content::NavigatorImpl::DidStartProvisionalLoad(content::RenderFrameHostImpl*, GURL const&, base::TimeTicks const&) (in Electron Framework) (memory:2780)
2   com.github.electron.framework 	bool IPC::MessageT<FrameHostMsg_DidStartProvisionalLoad_Meta, std::__1::tuple<GURL, base::TimeTicks>, void>::Dispatch<content::RenderFrameHostImpl, content::RenderFrameHostImpl, void, void (content::RenderFrameHostImpl::*)(GURL const&, base::TimeTicks const&)>(IPC::Message const*, content::RenderFrameHostImpl*, content::RenderFrameHostImpl*, void*, void (content::RenderFrameHostImpl::*)(GURL const&, base::TimeTicks const&)) (in Electron Framework) (tuple.h:144)
3   com.github.electron.framework 	content::RenderFrameHostImpl::OnMessageReceived(IPC::Message const&) (in Electron Framework) (render_frame_host_impl.cc:755)
4   com.github.electron.framework 	IPC::ChannelProxy::Context::OnDispatchMessage(IPC::Message const&) (in Electron Framework) (ipc_message.h:131)
5   com.github.electron.framework 	base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) (in Electron Framework) (callback_forward.h:29)
6   com.github.electron.framework 	base::MessageLoop::RunTask(base::PendingTask*) (in Electron Framework) (vector:638)
7   com.github.electron.framework 	base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) (in Electron Framework) (message_loop.cc:422)
8   com.github.electron.framework 	base::MessageLoop::DoWork() (in Electron Framework) (message_loop.cc:515)
9   com.github.electron.framework 	base::MessagePumpCFRunLoopBase::RunWork() (in Electron Framework) (message_pump_mac.mm:302)
10  com.github.electron.framework 	base::mac::CallWithEHFrame(void () block_pointer) (in Electron Framework) + 10
11  com.github.electron.framework 	base::MessagePumpCFRunLoopBase::RunWorkSource(void*) (in Electron Framework) (message_pump_mac.mm:281)
12  com.apple.CoreFoundation      	0x00007fff85aea7e1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
13  com.apple.CoreFoundation      	0x00007fff85ac9f1c __CFRunLoopDoSources0 + 556
14  com.apple.CoreFoundation      	0x00007fff85ac943f __CFRunLoopRun + 927
15  com.apple.CoreFoundation      	0x00007fff85ac8e38 CFRunLoopRunSpecific + 296
16  com.apple.HIToolbox           	0x00007fff82806935 RunCurrentEventLoopInMode + 235
17  com.apple.HIToolbox           	0x00007fff8280676f ReceiveNextEventCommon + 432
18  com.apple.HIToolbox           	0x00007fff828065af _BlockUntilNextEventMatchingListInModeWithFilter + 71
19  com.apple.AppKit              	0x00007fff90024df6 _DPSNextEvent + 1067
20  com.apple.AppKit              	0x00007fff90024226 -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
21  com.apple.AppKit              	0x00007fff90018d80 -[NSApplication run] + 682
22  com.github.electron.framework 	0x0000000102fa7f0e 0x102d7f000 + 2264846
23  com.github.electron.framework 	0x0000000102fa757c 0x102d7f000 + 2262396
24  com.github.electron.framework 	0x0000000102fa3abe 0x102d7f000 + 2247358
25  com.github.electron.framework 	0x0000000102fb8613 0x102d7f000 + 2332179
26  com.github.electron.framework 	0x000000010320831b 0x102d7f000 + 4756251
27  com.github.electron.framework 	0x0000000103208170 0x102d7f000 + 4755824
28  com.github.electron.framework 	0x000000010320a8b2 0x102d7f000 + 4765874
29  com.github.electron.framework 	0x000000010320424c 0x102d7f000 + 4739660
30  com.github.electron.framework 	0x0000000103169e6d 0x102d7f000 + 4107885
31  com.github.electron.framework 	0x0000000103168f66 0x102d7f000 + 4104038
32  com.github.electron.framework 	0x0000000102d81687 AtomMain + 71
33  com.tinyspeck.slackmacgap     	0x0000000102d78f26 main + 38
34  libdyld.dylib                 	0x00007fff885205ad start + 1
```

</details>

### How to reproduce

We don't have a guaranteed repro yet. I will update this bug as we get more information.

<!-- 

Your best chance of getting this bug looked at quickly is to provide a REPOSITORY that can be cloned and run.

You can fork https://github.com/electron/electron-quick-start and include a link to the branch with your changes.

If you provide a URL, please list the commands required to clone/setup/run your repo e.g.

  $ git clone $YOUR_URL -b $BRANCH
  $ npm install
  $ npm start || electron .

-->

atom/browser/api/atom_api_web_contents.cc
}
void WebContents::RenderViewCreated(content::RenderViewHost* render_view_host) {
  const auto impl = content::RenderWidgetHostImpl::FromID(
      render_view_host->GetProcess()->GetID(),
      render_view_host->GetRoutingID());
  if (impl)
    impl->disable_hidden_ = !background_throttling_;
}
void WebContents::RenderViewDeleted(content::RenderViewHost* render_view_host) {
  Emit("render-view-deleted", render_view_host->GetProcess()->GetID());
}
void WebContents::RenderProcessGone(base::TerminationStatus status) {
  Emit("crashed", status == base::TERMINATION_STATUS_PROCESS_WAS_KILLED);
}
void WebContents::PluginCrashed(const base::FilePath& plugin_path,
                                base::ProcessId plugin_pid) {
  content::WebPluginInfo info;
  auto plugin_service = content::PluginService::GetInstance();
  plugin_service->GetPluginInfoByPath(plugin_path, &info);
  Emit("plugin-crashed", info.name, info.version);
}
void WebContents::MediaStartedPlaying(const MediaPlayerInfo& video_type,
                                      const MediaPlayerId& id) {
  Emit("media-started-playing");
}
void WebContents::MediaStoppedPlaying(const MediaPlayerInfo& video_type,