The [use custom session protocol spec](https://github.com/electron/electron/blob/fea165bef8e1edf99b6e1500da89d015e76cc8e1/spec/api-protocol-spec.js#L874) is curently crashing on master on Windows 64-bit.

For some reason it isn't failing the build though which is why it wasn't caught earlier, will look into that separately.

I bisected and it started happening in https://github.com/electron/electron/pull/9358

```
Backtrace:
        tracked_objects::ThreadData::next [0x00007FF959D9C964+1437860]
        purecall [0x00007FF96DD94A74+52]
        ??1?$MessageT@UInputHostMsg_MoveCaret_ACK_Meta@@V?$tuple@$$V@std@@X@IPC@@UEAA@XZ [0x00007FF94CA8C4B8+13298808]
        ??1?$MessageT@UInputHostMsg_MoveCaret_ACK_Meta@@V?$tuple@$$V@std@@X@IPC@@UEAA@XZ [0x00007FF94CA8C6A8+13299304]
        ??1?$MessageT@UInputHostMsg_MoveCaret_ACK_Meta@@V?$tuple@$$V@std@@X@IPC@@UEAA@XZ [0x00007FF94C612AB5+8606325]
        ??1?$MessageT@UInputHostMsg_MoveCaret_ACK_Meta@@V?$tuple@$$V@std@@X@IPC@@UEAA@XZ [0x00007FF94C612948+8605960]
        ??1?$MessageT@UInputHostMsg_MoveCaret_ACK_Meta@@V?$tuple@$$V@std@@X@IPC@@UEAA@XZ [0x00007FF94C610F34+8599284]
        tracked_objects::ThreadData::next [0x00007FF959C7372D+220781]
        tracked_objects::ThreadData::next [0x00007FF959CAD996+458966]
        tracked_objects::ThreadData::next [0x00007FF959CAC0D0+452624]
        tracked_objects::ThreadData::next [0x00007FF959CB0377+469687]
        tracked_objects::ThreadData::next [0x00007FF959CB0EA4+472548]
        tracked_objects::ThreadData::next [0x00007FF959CF4D1E+750686]
        ??1?$MessageT@UInputHostMsg_MoveCaret_ACK_Meta@@V?$tuple@$$V@std@@X@IPC@@UEAA@XZ [0x00007FF94C60A00F+8570831]
        ??1?$MessageT@UInputHostMsg_MoveCaret_ACK_Meta@@V?$tuple@$$V@std@@X@IPC@@UEAA@XZ [0x00007FF94C60AEB5+8574581]
        tracked_objects::ThreadData::next [0x00007FF959D34BF7+1012535]
        tracked_objects::ThreadData::next [0x00007FF959D28315+961109]
        BaseThreadInitThunk [0x00007FF97ABE8364+20]
        RtlUserThreadStart [0x00007FF97D5670D1+33]
```

/cc @deepak1556 
atom/browser/net/url_request_fetch_job.cc
v8::Isolate* isolate, v8::Local<v8::Value> value) {
  mate::Dictionary options;
  if (!mate::ConvertFromV8(isolate, value, &options))
    return;
  
  v8::Local<v8::Value> val;
  if (options.Get("session", &val)) {
    if (val->IsNull()) {
      
      url_request_context_getter_ = new brightray::URLRequestContextGetter(
          this, nullptr, nullptr, base::FilePath(), true,
          BrowserThread::GetTaskRunnerForThread(BrowserThread::IO),
          BrowserThread::GetTaskRunnerForThread(BrowserThread::FILE),
          nullptr, content::URLRequestInterceptorScopedVector());
    } else {
      mate::Handle<api::Session> session;
      if (mate::ConvertFromV8(isolate, val, &session) && !session.IsEmpty()) {
        AtomBrowserContext* browser_context = session->browser_context();
        url_request_context_getter_ =
            browser_context->url_request_context_getter();
      }
    }
  }
}
void URLRequestFetchJob::StartAsync(std::unique_ptr<base::Value> options) {
  if (!options->IsType(base::Value::Type::DICTIONARY)) {
    NotifyStartError(net::URLRequestStatus(
          net::URLRequestStatus::FAILED, net::ERR_NOT_IMPLEMENTED));
    return;
  }