<!--  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:**
  * v8.0.1
* **Operating System:**
  * Arch Linux
* **Last Known Working Electron version:**
  * N/A (new feature)

### Expected Behavior
I expect that when I use `win.webContents.session.setSpellCheckerDictionaryDownloadURL`, Electron downloads `hunspell_dictionaries.zip` and spell checks input boxes. 

### Actual Behavior
Dictionary file is not downloaded to `~/.config/Electron/Dictionaries` and no spellchecking is done. 

### To Reproduce
See demo repo at https://github.com/heronhaye/electron-8-spellchecker-test. Relevant excerpt below.

```js
function createWindow () {
  win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true,
      spellcheck: true
    }
  })

  win.webContents.session.setSpellCheckerDictionaryDownloadURL(
    'https://modalduality.keybase.pub/hunspell801.zip'
  )

  win.loadFile('index.html')

  win.webContents.openDevTools()

  win.on('closed', () => {
    win = null
  })
}
```

When I comment out the call to setSpellCheckerDictionaryDownloadURL, everything works as expected.

I verified that the sha256 hash of the zip file at the URL (`bc64c413308f6582df625833e4d9f35871ca438ba93d72afc3a1cf84779e2d50`) is the same as the hash of the file that was released in Electron 8.0.1.


```sh
$ git clone https://github.com/heronhaye/electron-8-spellchecker-test.git
$ npm install
$ npm start
```

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

### Additional Information
Let me know if I can help by doing other tests, thanks!

shell/browser/api/electron_api_session.cc
const base::FilePath& path,
                        const std::vector<GURL>& url_chain,
                        const std::string& mime_type,
                        int64_t offset,
                        int64_t length,
                        const std::string& last_modified,
                        const std::string& etag,
                        const base::Time& start_time,
                        uint32_t id) {
  download_manager->CreateDownloadItem(
      base::GenerateGUID(), id, path, path, url_chain, GURL(), GURL(), GURL(),
      GURL(), base::nullopt, mime_type, mime_type, start_time, base::Time(),
      etag, last_modified, offset, length, std::string(),
      download::DownloadItem::INTERRUPTED,
      download::DOWNLOAD_DANGER_TYPE_NOT_DANGEROUS,
      download::DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT, false, base::Time(),
      false, std::vector<download::DownloadItem::ReceivedSlice>());
}
void DestroyGlobalHandle(v8::Isolate* isolate,