* Electron version: 1.8.2-beta.3
* Operating system: MacOS 10.12

### Expected behavior

File downloads from custom protocols should complete without issue.

### Actual behavior

Before even triggering the custom protocol handler, the download-item emits 'done' with a state of 'interrupted'. In my demo linked below, I use the new registerStreamProtocol, but I was able to reproduce using registerHttpProtocol as well.

### How to reproduce

Use https://github.com/pfrazee/electron-download-interrupt-bug

atom/browser/api/atom_api_protocol.h
v8::Isolate* isolate,
        net::URLRequestContextGetter* request_context,
        const Handler& handler)
        : isolate_(isolate),
          request_context_(request_context),
          handler_(handler) {}
    ~CustomProtocolHandler() override {}
    net::URLRequestJob* MaybeCreateJob(
        net::URLRequest* request,
        net::NetworkDelegate* network_delegate) const override {
      if (!request->initiator().has_value()) {
        
        return nullptr;
      }
      RequestJob* request_job = new RequestJob(request, network_delegate);
      request_job->SetHandlerInfo(isolate_, request_context_.get(), handler_);
      return request_job;
    }
   private:
    v8::Isolate* isolate_;
    scoped_refptr<net::URLRequestContextGetter> request_context_;
    Protocol::Handler handler_;
    DISALLOW_COPY_AND_ASSIGN(CustomProtocolHandler);
  };
  
  void RegisterServiceWorkerSchemes(const std::vector<std::string>& schemes);
  
  template<typename RequestJob>
  void RegisterProtocol(const std::string& scheme,