* 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/net/atom_url_request_job_factory.h
bool HasProtocolHandler(const std::string& scheme) const;
  
  void Clear();
  
  net::URLRequestJob* MaybeCreateJobWithProtocolHandler(
      const std::string& scheme,
      net::URLRequest* request,
      net::NetworkDelegate* network_delegate) const override;
  net::URLRequestJob* MaybeInterceptRedirect(
      net::URLRequest* request,
      net::NetworkDelegate* network_delegate,
      const GURL& location) const override;
  net::URLRequestJob* MaybeInterceptResponse(
      net::URLRequest* request,
      net::NetworkDelegate* network_delegate) const override;
  bool IsHandledProtocol(const std::string& scheme) const override;
  bool IsSafeRedirectTarget(const GURL& location) const override;
 private:
  using ProtocolHandlerMap = std::map<std::string, ProtocolHandler*>;
  ProtocolHandlerMap protocol_handler_map_;
  
  using OriginalProtocolsMap = std::unordered_map<
      std::string, std::unique_ptr<ProtocolHandler>>;
  
  OriginalProtocolsMap original_protocols_;
  DISALLOW_COPY_AND_ASSIGN(AtomURLRequestJobFactory);
};
}  
#endif