OS: `windows 10`
Electron: `9.2.0` `9.1.2` `9.0.0` `8.5.0` `7.3.0`

Main process code:
```javascript
const mainWindow = new BrowserWindow({
  width: 800,
  height: 600,
  webPreferences: {
    nodeIntegration: true,
    webSecurity:false
  }
})
let view1 = new BrowserView({
    webPreferences: {
      nodeIntegration: true,
      devTools: true,
      webSecurity: false,
    },
  });
mainWindow.setBrowserView(view1);
let size = mainWindow.getSize();
view1.setBounds({
  x: 0,
  y: 0,
  width: size[0],
  height: size[1],
});
view1.setAutoResize({
  width: true,
  height: true,
});
view1.webContents.loadFile(`index.html`)
view1.webContents.openDevTools({ mode: "undocked" })
let view2 = new BrowserView({
  webPreferences: {
    nodeIntegration: true,
    devTools: true,
    webSecurity: false,
  },
});
view2.webContents.loadFile(`index.html`);
```

Renderer process code
```javascript
//HTML
// <input id="fileInput" type="file" />
postFile = (data)=> {
  let _url = 'https://******.com/upload'
  return fetch(_url, {
    method: 'POST',
    body: data,
  }).then(response => response.json())
    .catch(error => {
      console.error(error)
    })
}
let fileInput = document.getElementById("fileInput")
fileInput.addEventListener('change', function() {
  var file = fileInput.files[0];
  let formData = new FormData()
  formData.append('filetype', 'image')
  formData.append('file', file)
  postFile(formData);
});
```
Error:

> POST https://******.com/upload net::ERR_ACCESS_DENIED

Description:
When add `await` before `view1.webContents.loadFile`,the renderer process will work correctly.
shell/browser/electron_browser_client.cc
if (allowed) {
    platform_util::OpenExternal(
        escaped_url, platform_util::OpenExternalOptions(), base::DoNothing());
  }
}
void HandleExternalProtocolInUI(
    const GURL& url,
    content::WebContents::OnceGetter web_contents_getter,
    bool has_user_gesture) {
  content::WebContents* web_contents = std::move(web_contents_getter).Run();
  if (!web_contents)
    return;
  auto* permission_helper =
      WebContentsPermissionHelper::FromWebContents(web_contents);
  if (!permission_helper)
    return;
  GURL escaped_url(net::EscapeExternalHandlerValue(url.spec()));
  auto callback = base::BindOnce(&OnOpenExternal, escaped_url);
  permission_helper->RequestOpenExternalPermission(std::move(callback),
                                                   has_user_gesture, url);
}
bool ElectronBrowserClient::HandleExternalProtocol(