fix: use acceptLanguages argument in session.setUserAgent() (#23944) (#23964)

Co-authored-by: Milan Burda <miburda@microsoft.com>
This commit is contained in:
Milan Burda
2020-06-08 18:19:50 +02:00
committed by GitHub
parent 3674762c36
commit 418049f70c
2 changed files with 13 additions and 4 deletions

View File

@@ -39,6 +39,7 @@
#include "net/http/http_auth_handler_factory.h"
#include "net/http/http_auth_preferences.h"
#include "net/http/http_cache.h"
#include "net/http/http_util.h"
#include "services/network/network_service.h"
#include "services/network/public/cpp/features.h"
#include "shell/browser/api/atom_api_cookies.h"
@@ -497,9 +498,16 @@ void Session::AllowNTLMCredentialsForDomains(const std::string& domains) {
void Session::SetUserAgent(const std::string& user_agent,
mate::Arguments* args) {
browser_context_->SetUserAgent(user_agent);
content::BrowserContext::GetDefaultStoragePartition(browser_context_.get())
->GetNetworkContext()
->SetUserAgent(user_agent);
auto* network_context = content::BrowserContext::GetDefaultStoragePartition(
browser_context_.get())
->GetNetworkContext();
network_context->SetUserAgent(user_agent);
std::string accept_lang;
if (args->GetNext(&accept_lang)) {
network_context->SetAcceptLanguage(
net::HttpUtil::GenerateAcceptLanguageHeader(accept_lang));
}
}
std::string Session::GetUserAgent() {

View File

@@ -906,7 +906,7 @@ describe('session module', () => {
it('sets the User-Agent header for web requests made from renderers', async () => {
const userAgent = 'test-agent'
const ses = session.fromPartition(''+Math.random())
ses.setUserAgent(userAgent)
ses.setUserAgent(userAgent, 'en-US,fr,de');
const w = new BrowserWindow({ show: false, webPreferences: { session: ses } })
let headers = null
const server = http.createServer((req, res) => {
@@ -917,6 +917,7 @@ describe('session module', () => {
await new Promise(resolve => server.listen(0, '127.0.0.1', resolve))
await w.loadURL(`http://127.0.0.1:${server.address().port}`)
expect(headers['user-agent']).to.equal(userAgent)
expect(headers['accept-language']).to.equal('en-US,fr;q=0.9,de;q=0.8');
})
})
})