-
Notifications
You must be signed in to change notification settings - Fork 15k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: crash when calling non-reentrant function in loadURL
#40143
Conversation
6b78b97
to
e5c74ba
Compare
e5c74ba
to
0bd50f0
Compare
Release Notes Persisted
|
I have automatically backported this PR to "24-x-y", please check out #40160 |
I have automatically backported this PR to "25-x-y", please check out #40161 |
I have automatically backported this PR to "27-x-y", please check out #40162 |
I have automatically backported this PR to "26-x-y", please check out #40163 |
…omponents,labware-designer): update Electron version to v27.0.0 (#14314) Update Electron version 27.0.0 https://www.electronjs.org/docs/latest/tutorial/electron-timelines#timeline This is the latest version of electron that does not include electron/electron#40143 which breaks the ability of the ODD to load content. This PR also includes Nodejs update because of Electron v27's requirement. The more recent nodejs requires some new options; specifically, webpack dev servers must serve on ipv6 wildcards, and internally in the shell we need to prefer v4 dns. We also need to use old openssl. --------- Co-authored-by: Brent Hagen <brent.hagen@opentrons.com> Co-authored-by: Seth Foster <seth@opentrons.com>
…omponents,labware-designer): update Electron version to v27.0.0 (#14314) Update Electron version 27.0.0 https://www.electronjs.org/docs/latest/tutorial/electron-timelines#timeline This is the latest version of electron that does not include electron/electron#40143 which breaks the ability of the ODD to load content. This PR also includes Nodejs update because of Electron v27's requirement. The more recent nodejs requires some new options; specifically, webpack dev servers must serve on ipv6 wildcards, and internally in the shell we need to prefer v4 dns. We also need to use old openssl. --------- Co-authored-by: Brent Hagen <brent.hagen@opentrons.com> Co-authored-by: Seth Foster <seth@opentrons.com>
Description of Change
Closes #19847.
Refs http://crbug.com/347742.
Handles an issue where calling
loadURL
during somewebContents
url loading events could crash.There are a few possible ways to handle this, as outlined in #19847 (comment) - I decided to take the path of simply failing to load if we're currently in a non-reentrant loadURL function.
This crash was happening because it's not safe to start a new navigation or otherwise discard the current one while the call that started it is still on the stack. When this happens, we can see use-after-frees, which Chrome preemptively handles with CHECKs.
Checklist
npm test
passesRelease Notes
Notes: Fixed an issue where calling
loadURL
during somewebContents
url loading events could crash.