<!--  As an open source project with a dedicated but small maintainer team, it can sometimes take a long time for issues to be addressed so please be patient and we will get back to you as soon as we can.
-->

### 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

The response of the CORS POST request is empty.

* **Electron Version:** 7.x, 8.x
* **Operating System:** Linux (at least)
* **Last Known Working Electron version:** 6.1.3

### Expected Behavior
<!-- A clear and concise description of what you expected to happen. -->
The response of the CORS POST request is not empty.

### Actual Behavior
<!-- A clear and concise description of what actually happened. -->
The response of the CORS POST request is empty.

### To Reproduce
<!--
Your best chance of getting this bug looked at quickly is to provide an example.
-->
https://github.com/vladimiry-playground/electron-quick-start-custom-prtocol-cors-issue

<!--
For bugs that can be encapsulated in a small experiment, you can use Electron Fiddle (https://github.com/electron/fiddle) to publish your example to a GitHub Gist and link it your bug report.
-->

<!--
If Fiddle is insufficient to produce an example, please provide an example REPOSITORY that can be cloned and run. You can fork electron-quick-start (https://github.com/electron/electron-quick-start) and include a link to the branch with your changes.
-->

<!--
If you provide a URL, please list the commands required to clone/setup/run your repo e.g.
```sh
$ git clone $YOUR_URL -b $BRANCH
$ npm install
$ npm start || electron .
```
-->

### Screenshots
<!-- If applicable, add screenshots to help explain your problem. -->

![v7 0 1 (response is empty)](https://user-images.githubusercontent.com/1560781/68053943-415cbc00-fcfe-11e9-9ba2-913fda4d0a84.gif)

![v6 3 1 (response is filled)](https://user-images.githubusercontent.com/1560781/68053948-43bf1600-fcfe-11e9-8722-620645f5c375.gif)


### Additional Information
<!-- Add any other context about the problem here. -->

In v7 and v8, the `access-control-allow-origin` and `origin` headers are not shown as modified in the dev console. It shows `https://mail.protonmail.com` value but should be showing `scheme123://index.html` as v6 does.
shell/browser/net/proxying_url_loader_factory.cc
}
  
  
  
  
  const uint64_t web_request_id = ++g_request_id;
  if (request_id)
    network_request_id_to_web_request_id_.emplace(request_id, web_request_id);
  auto result = requests_.emplace(
      web_request_id,
      std::make_unique<InProgressRequest>(
          this, web_request_id, routing_id, request_id, options, request,
          traffic_annotation, std::move(loader), std::move(client)));
  result.first->second->Restart();
}
void ProxyingURLLoaderFactory::Clone(
    mojo::PendingReceiver<network::mojom::URLLoaderFactory> loader_receiver) {
  proxy_receivers_.Add(this, std::move(loader_receiver));
}
void ProxyingURLLoaderFactory::OnLoaderCreated(
    int32_t request_id,
    mojo::PendingReceiver<network::mojom::TrustedHeaderClient> receiver) {
  auto it = network_request_id_to_web_request_id_.find(request_id);
  if (it == network_request_id_to_web_request_id_.end())
    return;
  auto request_it = requests_.find(it->second);
  DCHECK(request_it != requests_.end());
  request_it->second->OnLoaderCreated(std::move(receiver));
}
bool ProxyingURLLoaderFactory::IsForServiceWorkerScript() const {