mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 05:41:12 +00:00
d47f4a615c
After some investigation, I was able to find a theoretical codepath which could lead to the "missing initial frame browsing context" error: 1. Two iframes are created for the same origin, and begin process switching. 2. The first iframe finishes process switching, but for some reason (e.g. being in shutdown) the call to `LaunchSubprocessResolve` errors. 3. The second callback is called and also calls LaunchSubprocessResolve, which this time returns `true` due to it previously having been called. 4. The BrowserParent is created in the new content process despite `InitInternal()` never having been finished, and therefore the ContentParent never becoming subscribed to the BrowsingContextGroup. To fix this, I made 2 changes: 1. Abort from process switching if the target process which we're going to be creating a BrowserParent in `IsDead()`, and 2. Track the return value from `LaunchSubprocessResolve`, so we return `false` if it is called a second time after a failed content process launch. I'm not confident that this is the cause of the crashes, as I was unable to reproduce the issue. Differential Revision: https://phabricator.services.mozilla.com/D123548 |
||
---|---|---|
.. | ||
base | ||
build | ||
resources/content | ||
shistory | ||
test | ||
moz.build |