fix: do not reset process_id in URLLoaderFactoryParams (#25139) (#25181)

This commit is contained in:
Cheng Zhao
2020-08-31 10:09:03 +09:00
committed by GitHub
parent 7dafaf1d21
commit caaaa349e8
2 changed files with 11 additions and 4 deletions

View File

@@ -1090,10 +1090,9 @@ void ElectronBrowserClient::OverrideURLLoaderFactoryParams(
content::RenderProcessHost* process,
const url::Origin& origin,
network::mojom::URLLoaderFactoryParams* factory_params) {
const auto& iter = process_preferences_.find(process->GetID());
if (iter != process_preferences_.end() && !iter->second.web_security) {
// bypass CORB
factory_params->process_id = iter->first;
// Bypass CORB when web security is disabled.
auto it = process_preferences_.find(factory_params->process_id);
if (it != process_preferences_.end() && !it->second.web_security) {
factory_params->is_corb_enabled = false;
}
}

View File

@@ -277,6 +277,14 @@ describe('web security', () => {
<script src="${serverUrl}"></script>`)
await p
})
it('does not crash when multiple WebContent are created with web security disabled', () => {
const options = { webPreferences: { webSecurity: false } }
const w1 = new BrowserWindow(options)
w1.loadURL(serverUrl)
const w2 = new BrowserWindow(options)
w2.loadURL(serverUrl)
})
})
describe('command line switches', () => {