### 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
size_callback_ = std::move(callback);
  }
  void StartReading(mojo::ScopedDataPipeProducerHandle pipe) override {
    DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
    if (body_func_.IsEmpty()) {
      LOG(ERROR) << "Tried to read twice from a JSChunkedDataPipeGetter";
      
      return;
    }
    data_producer_ = std::make_unique<mojo::DataPipeProducer>(std::move(pipe));
    v8::HandleScope handle_scope(isolate_);
    v8::MicrotasksScope script_scope(isolate_,
                                     v8::MicrotasksScope::kRunMicrotasks);
    auto maybe_wrapper = GetWrapper(isolate_);
    v8::Local<v8::Value> wrapper;
    if (!maybe_wrapper.ToLocal(&wrapper)) {
      return;
    }
    v8::Local<v8::Value> argv[] = {wrapper};
    node::Environment* env = node::Environment::GetCurrent(isolate_);
    auto global = env->context()->Global();
    node::MakeCallback(isolate_, global, body_func_.Get(isolate_),
                       node::arraysize(argv), argv, {0, 0});
  }
  v8::Local<v8::Promise> WriteChunk(v8::Local<v8::Value> buffer_val) {