* Electron Version: 2.0.5
* Operating System (Platform and Version): macOS

Data from our crash reporter shows this as one of the top crashes:

```

Package: VSCode
Version: 1.26.0
OS: Mac OS X 10.13.6 (17G65)

Operating system: Mac OS X
                  10.13.6 17G65
CPU: amd64
     family 6 model 60 stepping 3
     4 CPUs

GPU: UNKNOWN

Crash reason:  EXC_BAD_ACCESS / EXC_I386_GPFLT
Crash address: 0x10ac4d8e6
Process uptime: 14298 seconds

Thread 0 (crashed)
 0  Electron Framework!atom::WindowList::CloseAllWindows() [window_list.cc : 88 + 0x3]
    rax = 0x6000000000000000   rdx = 0x00007ffee764fa88
    rcx = 0x0000000000000000   rbx = 0x00006040002004d8
    rsi = 0x0000000000003830   rdi = 0x00007fe126f490d0
    rbp = 0x00007ffee764fc20   rsp = 0x00007ffee764fbf0
     r8 = 0x00000000000003ff    r9 = 0x000060000039c630
    r10 = 0x00007fe127390a30   r11 = 0x00007fe127a6df10
    r12 = 0x0000000000000064   r13 = 0x000060000017bc00
    r14 = 0x00006040002004e0   r15 = 0x0000000000000000
    rip = 0x000000010ac4d8e6
    Found by: given as instruction pointer in context
 1  Electron Framework!<name omitted> [browser.cc : 52 + 0x5]
    rbp = 0x00007ffee764fc40   rsp = 0x00007ffee764fc30
    rip = 0x000000010abfa516
    Found by: previous frame's frame pointer
 2  Electron Framework!-[AtomApplication terminate:] [atom_application.mm : 38 + 0x8]
    rbp = 0x00007ffee764fc60   rsp = 0x00007ffee764fc50
    rip = 0x000000010ac04e55
    Found by: previous frame's frame pointer
 3  AppKit + 0x404008
    rbp = 0x00007ffee764fd00   rsp = 0x00007ffee764fc70
    rip = 0x00007fff553ff008
    Found by: previous frame's frame pointer
 4  AppKit + 0x403e6d
    rbp = 0x00007ffee764fd20   rsp = 0x00007ffee764fd10
    rip = 0x00007fff553fee6d
    Found by: previous frame's frame pointer
 5  AppKit + 0x468c01
    rbp = 0x00007ffee764fd40   rsp = 0x00007ffee764fd30
    rip = 0x00007fff55463c01
    Found by: previous frame's frame pointer
 6  CoreFoundation + 0xa387c
    rbp = 0x00007ffee764fd50   rsp = 0x00007ffee764fd50
    rip = 0x00007fff57abf87c
    Found by: previous frame's frame pointer
 7  CoreFoundation + 0x86253
    rbp = 0x00007ffee764fdd0   rsp = 0x00007ffee764fd60
    rip = 0x00007fff57aa2253
    Found by: previous frame's frame pointer
 8  CoreFoundation + 0x858de
    rbp = 0x00007ffee7650ac0   rsp = 0x00007ffee764fde0
    rip = 0x00007fff57aa18de
    Found by: previous frame's frame pointer
 9  CoreFoundation + 0x85153
    rbp = 0x00007ffee7650b50   rsp = 0x00007ffee7650ad0
    rip = 0x00007fff57aa1153
    Found by: previous frame's frame pointer
10  HIToolbox + 0x2fd96
    rbp = 0x00007ffee7650ba0   rsp = 0x00007ffee7650b60
    rip = 0x00007fff56d8bd96
    Found by: previous frame's frame pointer
11  HIToolbox + 0x2fa0f
    rbp = 0x00007ffee7650c20   rsp = 0x00007ffee7650bb0
    rip = 0x00007fff56d8ba0f
    Found by: previous frame's frame pointer
12  HIToolbox + 0x2f884
    rbp = 0x00007ffee7650c40   rsp = 0x00007ffee7650c30
    rip = 0x00007fff56d8b884
    Found by: previous frame's frame pointer
13  AppKit + 0x41a73
    rbp = 0x00007ffee7651080   rsp = 0x00007ffee7650c50
    rip = 0x00007fff5503ca73
    Found by: previous frame's frame pointer
14  AppKit + 0x7d7e34
    rbp = 0x00007ffee7651300   rsp = 0x00007ffee7651090
    rip = 0x00007fff557d2e34
    Found by: previous frame's frame pointer
15  AppKit + 0x36885
    rbp = 0x00007ffee76513b0   rsp = 0x00007ffee7651310
    rip = 0x00007fff55031885
    Found by: previous frame's frame pointer
16  Electron Framework!base::MessagePumpNSApplication::DoRun(base::MessagePump::Delegate*) [message_pump_mac.mm : 749 + 0xd]
    rbp = 0x00007ffee7651410   rsp = 0x00007ffee76513c0
    rip = 0x000000010de8e8fe
    Found by: previous frame's frame pointer
17  Electron Framework!base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) [message_pump_mac.mm : 141 + 0xc]
    rbp = 0x00007ffee7651440   rsp = 0x00007ffee7651420
    rip = 0x000000010de8d2fc
    Found by: previous frame's frame pointer
18  Electron Framework!<name omitted> [run_loop.cc : 111 + 0x5]
    rbp = 0x00007ffee76514d0   rsp = 0x00007ffee7651450
    rip = 0x000000010de301b3
    Found by: previous frame's frame pointer
19  Electron Framework!content::BrowserMainLoop::MainMessageLoopRun() [browser_main_loop.cc : 1696 + 0x8]
    rbp = 0x00007ffee7651540   rsp = 0x00007ffee76514e0
    rip = 0x000000010c3900ef
    Found by: previous frame's frame pointer
20  Electron Framework!content::BrowserMainLoop::RunMainMessageLoopParts() [browser_main_loop.cc : 1172 + 0x8]
    rbp = 0x00007ffee7651570   rsp = 0x00007ffee7651550
    rip = 0x000000010c38ff10
    Found by: previous frame's frame pointer
21  Electron Framework!content::BrowserMainRunnerImpl::Run() [browser_main_runner.cc : 142 + 0x5]
    rbp = 0x00007ffee7651590   rsp = 0x00007ffee7651580
    rip = 0x000000010c0ca852
    Found by: previous frame's frame pointer
22  Electron Framework!content::BrowserMain(content::MainFunctionParams const&) [browser_main.cc : 46 + 0x9]
    rbp = 0x00007ffee76515c0   rsp = 0x00007ffee76515a0
    rip = 0x000000010c47fb3c
    Found by: previous frame's frame pointer
23  Electron Framework!content::ContentMainRunnerImpl::Run() [content_main_runner.cc : 686 + 0x8]
    rbp = 0x00007ffee7651630   rsp = 0x00007ffee76515d0
    rip = 0x000000010c01faa0
    Found by: previous frame's frame pointer
24  Electron Framework!service_manager::Main(service_manager::MainParams const&) [main.cc : 469 + 0xa]
    rbp = 0x00007ffee7651ab0   rsp = 0x00007ffee7651640
    rip = 0x000000010e702da4
    Found by: previous frame's frame pointer
25  Electron Framework!content::ContentMain(content::ContentMainParams const&) [content_main.cc : 19 + 0x8]
    rbp = 0x00007ffee7651b30   rsp = 0x00007ffee7651ac0
    rip = 0x000000010c01f084
    Found by: previous frame's frame pointer
26  Electron Framework!AtomMain [atom_library_main.mm : 23 + 0x5]
    rbp = 0x00007ffee7651bb0   rsp = 0x00007ffee7651b40
    rip = 0x000000010ab50044
    Found by: previous frame's frame pointer
27  Electron + 0xf26
    rbp = 0x00007ffee7651bd0   rsp = 0x00007ffee7651bc0
    rip = 0x00000001085aef26
    Found by: previous frame's frame pointer
28  libdyld.dylib + 0x1015
    rbp = 0x00007ffee7651be0   rsp = 0x00007ffee7651be0
    rip = 0x00007fff7f8e2015
    Found by: previous frame's frame pointer
```
shell/browser/window_list.cc
for (WindowListObserver& observer : observers_.Get())
    observer.OnWindowCloseCancelled(window);
}
void WindowList::AddObserver(WindowListObserver* observer) {
  observers_.Get().AddObserver(observer);
}
void WindowList::RemoveObserver(WindowListObserver* observer) {
  observers_.Get().RemoveObserver(observer);
}
void WindowList::CloseAllWindows() {
  WindowVector windows = GetInstance()->windows_;
#if defined(OS_MACOSX)
  std::reverse(windows.begin(), windows.end());
#endif
  for (auto* const& window : windows)
    if (!window->IsClosed())
      window->Close();
}
void WindowList::DestroyAllWindows() {
  WindowVector windows = GetInstance()->windows_;
  for (auto* const& window : windows)
    window->CloseImmediately();  
}
WindowList::WindowList() = default;
WindowList::~WindowList() = default;
}