### Preflight Checklist
<!-- Please ensure you've completed the following steps by replacing [ ] with [x]-->

* [x] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
* [x] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
* [x] I have searched the issue tracker for an issue that matches the one I want to file, without success.

### Issue Details

* **Electron Version:**
  8.0.1
* **Operating System:**
  macOS 10.14.6

### Expected Behavior
Send a request with `referer` header. It's worked with Node's `http/https` module, but failed when I change to `net.request`.

### Actual Behavior
No referer header

### To Reproduce
```js
ses.protocol.interceptStreamProtocol("https", (request, callback) => {
	const resp = sendRequestWithNetRequest({
       url: request.url,
       method: request.method,
	   headers: {
			...request.headers,
			referer: request.referrer  // only referrer has been ignored!!
       }
    })
    callback({
        data: resp.body,
        statusCode: resp.statusCode,
        headers: resp.headers
      });
});
```

shell/browser/api/electron_api_url_loader.cc
gin_helper::Promise<void> promise(isolate_);
    v8::Local<v8::Promise> handle = promise.GetHandle();
    if (!buffer_val->IsArrayBufferView()) {
      promise.RejectWithErrorMessage("Expected an ArrayBufferView");
      return handle;
    }
    if (is_writing_) {
      promise.RejectWithErrorMessage("Only one write can be pending at a time");
      return handle;
    }
    if (!size_callback_) {
      promise.RejectWithErrorMessage("Can't write after calling done()");
      return handle;
    }
    auto buffer = buffer_val.As<v8::ArrayBufferView>();
    is_writing_ = true;
    bytes_written_ += buffer->ByteLength();
    auto backing_store = buffer->Buffer()->GetBackingStore();
    auto buffer_span = base::make_span(
        static_cast<char*>(backing_store->Data()) + buffer->ByteOffset(),
        buffer->ByteLength());
    auto buffer_source = std::make_unique<BufferDataSource>(buffer_span);
    data_producer_->Write(
        std::move(buffer_source),
        base::BindOnce(&JSChunkedDataPipeGetter::OnWriteChunkComplete,
                       
                       
                       base::Unretained(this), std::move(promise)));
    return handle;
  }