<!--  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:**
  * 9.0.0-beta.18 x86
* **Operating System:**
  * win7 x64 sp1
* **Last Known Working Electron version:**
  * 4.2.9 x86

### Expected Behavior
Per the docs and the original implementation, `acceptLanguages` param should be controlling the Accept-Language header.

https://github.com/electron/electron/blob/4-2-x/atom/browser/api/atom_api_session.cc#L612
https://www.electronjs.org/docs/api/session#sessetuseragentuseragent-acceptlanguages

### Actual Behavior
`acceptLanguages` param is ignored, Accept-Language remains at its default.

### To Reproduce
- the current user os (win7) lang is "en-US"
- run the following app in 4.2 and 9.0
- inspect the request in the renderer devtools
- in 4.2, Accept-Language is "fr"
- in 9.0 it's "en-US"

```js
'use strict';

const {app, BrowserWindow} = require('electron');

let win;

app.once('ready', () => {

  win = new BrowserWindow({
    webPreferences: {
      nodeIntegration: false
    }
  });

  win.webContents.session.setUserAgent('', 'fr');

  win.webContents.openDevTools({mode: 'right'});
  win.loadURL('about:blank');
  setTimeout(() => win.loadURL('https://example.org/'), 3000);

});
```

### Additional Information
The original implementation of setUserAgent was removed at some point and it was later re-implemented by #20014 without acceptLanguages  support.

shell/browser/api/electron_api_session.cc
double start_time = base::Time::Now().ToDoubleT();
  std::string mime_type, last_modified, etag;
  base::FilePath path;
  std::vector<GURL> url_chain;
  options.Get("path", &path);
  options.Get("urlChain", &url_chain);
  options.Get("mimeType", &mime_type);
  options.Get("offset", &offset);
  options.Get("length", &length);
  options.Get("lastModified", &last_modified);
  options.Get("eTag", &etag);
  options.Get("startTime", &start_time);
  v8::Isolate* isolate = v8::Isolate::GetCurrent();
  if (path.empty() || url_chain.empty() || length == 0) {
    isolate->ThrowException(v8::Exception::Error(gin::StringToV8(
        isolate, "Must pass non-empty path, urlChain and length.")));
    return;
  }
  if (offset >= length) {
    isolate->ThrowException(v8::Exception::Error(gin::StringToV8(
        isolate, "Must pass an offset value less than length.")));
    return;
  }
  auto* download_manager =
      content::BrowserContext::GetDownloadManager(browser_context());
  download_manager->GetNextId(base::BindRepeating(
      &DownloadIdCallback, download_manager, path, url_chain, mime_type, offset,
      length, last_modified, etag, base::Time::FromDoubleT(start_time)));
}
void Session::SetPreloads(