- Electron version: v0.37.4
- Operating system: OSX 10.10.5

When _listening_ on [`onHeadersReceived`](https://github.com/electron/electron/blob/master/docs/api/session.md#seswebrequestonheadersreceivedfilter-listener), "Location" headers are no longer obeyed, and redirects are not followed, even when passing the original `responseHeaders` untouched. I'm not sure if this behaviour is intentional or a bug, it feels like the latter.

**Follows redirect:**

``` js
// Assuming the following
var win = new BrowserWindow({});
var sess = win.webContents.session;
// The page is loaded as expected
win.loadURL("http://bbc.co.uk");
```

**Does not follow redirect (ends early):**

``` js
// Same as above
var win = new BrowserWindow({});
var sess = win.webContents.session;
// But, this time, let's listen to `onHeadersReceived`
sess.webRequest.onHeadersReceived(function (details, callback) {
  console.log(details.responseHeaders);
  callback({cancel: false, responseHeaders: details.responseHeaders});
});
// The page is not loaded / the redirect is not obeyed...
win.loadURL("http://bbc.co.uk");
```

And below is the output of the `console.log`:

```
{ Connection: [ 'Keep-Alive' ],
  'Content-Length': [ '0' ],
  'Content-Type': [ 'text/html' ],
  Date: [ 'Mon, 04 Apr 2016 21:32:18 GMT' ],
  Location: [ 'http://www.bbc.co.uk/' ] }
```

atom/browser/net/atom_network_delegate.cc
callbacks_.erase(request->identifier());
}
void AtomNetworkDelegate::OnErrorOccurred(
    net::URLRequest* request, bool started) {
  if (!ContainsKey(simple_listeners_, kOnErrorOccurred)) {
    brightray::NetworkDelegate::OnCompleted(request, started);
    return;
  }
  HandleSimpleEvent(kOnErrorOccurred, request, request->was_cached(),
                    request->status());
}
template<typename Out, typename... Args>
int AtomNetworkDelegate::HandleResponseEvent(