<!--  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 SpellcheckCustomDictionary::Change& dictionary_change) override {
    
  }
};
}  
Session::Session(v8::Isolate* isolate, ElectronBrowserContext* browser_context)
    : network_emulation_token_(base::UnguessableToken::Create()),
      browser_context_(browser_context) {
  
  content::BrowserContext::GetDownloadManager(browser_context)
      ->AddObserver(this);
  new SessionPreferences(browser_context);
  protocol_.Reset(isolate, Protocol::Create(isolate, browser_context).ToV8());
  Init(isolate);
  AttachAsUserData(browser_context);
}
Session::~Session() {
  content::BrowserContext::GetDownloadManager(browser_context())
      ->RemoveObserver(this);
  
  
  
  DestroyGlobalHandle(isolate(), cookies_);
  DestroyGlobalHandle(isolate(), protocol_);
  DestroyGlobalHandle(isolate(), net_log_);
  g_sessions.erase(weak_map_id());
}
void Session::OnDownloadCreated(content::DownloadManager* manager,