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

* **Electron Version:**
  * 7.0.0-beta.4
* **Operating System:**
  * MacOS 10.14.5
* **Last Known Working Electron version:**
  * 7.0.0-beta.3

### Tltr

| Header                                   | Result       |
|------------------------------------------|--------------|
| `content-type: text/html; charset=UTF-8` | doesn't work |
| `content-type: text/html`                | works        |


### Expected Behavior

`protocol.registerStreamProtocol` should work with content-type charset headers 

#### `BrowserWindow` Result Screenshot
<img width="113" alt="Bildschirmfoto 2019-09-10 um 11 47 20" src="https://user-images.githubusercontent.com/1265681/64603483-c8597c00-d3c0-11e9-9410-517c9f3e79bf.png">


### Actual Behavior

`protocol.registerStreamProtocol` doesn't work with content-type charset headers

#### `BrowserWindow` Result Screenshot

<img width="218" alt="Bildschirmfoto 2019-09-10 um 11 47 30" src="https://user-images.githubusercontent.com/1265681/64603559-e58e4a80-d3c0-11e9-9044-e487a3ebd88c.png">

### To Reproduce

```sh
$ git clone git@github.com:HaNdTriX/electron-content-type-bug.git
$ npm install
$ npm start
```

or use the following code

```js
const { app, protocol, BrowserWindow } = require('electron')
const { PassThrough } = require('stream')

function createStream (text) {
  const rv = new PassThrough() // PassThrough is also a Readable stream
  rv.push(text)
  rv.push(null)
  return rv
}

app.on('ready', () => {
  protocol.registerStreamProtocol('atom', (request, callback) => {
    callback({
      statusCode: 200,
      headers: {
        'content-type': 'text/html; charset=UTF-8'
        // 'content-type': 'text/html' -> is working
      },
      data: createStream('<h5>Response</h5>')
    })
  })

  let win = new BrowserWindow({ width: 800, height: 600 })
  win.loadURL('atom://app')
})

```

<!--
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.
-->

shell/browser/net/atom_url_loader_factory.cc
client->OnReceiveResponse(head);
    mojo::ScopedDataPipeProducerHandle producer;
    mojo::ScopedDataPipeConsumerHandle consumer;
    if (mojo::CreateDataPipe(nullptr, &producer, &consumer) != MOJO_RESULT_OK) {
      client->OnComplete(
          network::URLLoaderCompletionStatus(net::ERR_INSUFFICIENT_RESOURCES));
      return;
    }
    producer.reset();  
    client->OnStartLoadingResponseBody(std::move(consumer));
    client->OnComplete(network::URLLoaderCompletionStatus(net::OK));
    return;
  } else if (!stream->IsObject()) {
    client->OnComplete(network::URLLoaderCompletionStatus(net::ERR_FAILED));
    return;
  }
  mate::Dictionary data = ToDict(dict.isolate(), stream);
  v8::Local<v8::Value> method;
  if (!data.Get("on", &method) || !method->IsFunction() ||
      !data.Get("removeListener", &method) || !method->IsFunction()) {
    client->OnComplete(network::URLLoaderCompletionStatus(net::ERR_FAILED));
    return;
  }
  new NodeStreamLoader(std::move(head), std::move(loader), std::move(client),
                       data.isolate(), data.GetHandle());
}
void AtomURLLoaderFactory::SendContents(