This is an automated email from the git hooks/post-receive script.
pierov pushed a commit to branch tor-browser-102.2.0esr-12.0-1 in repository tor-browser.
commit 7f8564b1a0ac55256b7131a59467f20c30c54a5c Author: Jamie Nicol jnicol@mozilla.com AuthorDate: Fri Jun 17 14:16:42 2022 +0000
Bug 1774201 - Stop skipping ReinitRendering if previous attempt failed. r=gfx-reviewers,aosmond a=pascalc
In bug 1728062 we made it so that we that we skip BrowserChild::ReinitRendering if the BrowserChild is not connected to a compositor. This was in order to avoid initializing the compositor for windowless browsers.
However, in cases where the GPU process dies before an initial InitRendering has completed, then the BrowserChild will also be left not connected to a compositor, with mLayersConnected == Some(false). ReinitRendering will be called once the new GPU process has been launched, but due to this condition we will exit early, and the tab will be left in an unusable state.
To fix this, this patch changes the early return condition to only check for mLayersConnected.isNothing(), ie we never even attempted to initialize rendering. When it is Some(false), ie we attempted and failed, then ReinitializeRendering is still executed.
Differential Revision: https://phabricator.services.mozilla.com/D149619 --- dom/ipc/BrowserChild.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dom/ipc/BrowserChild.cpp b/dom/ipc/BrowserChild.cpp index cd87537e42633..686bb93ae5ad9 100644 --- a/dom/ipc/BrowserChild.cpp +++ b/dom/ipc/BrowserChild.cpp @@ -3141,7 +3141,7 @@ void BrowserChild::ReinitRendering() {
// In some cases, like when we create a windowless browser, // RemoteLayerTreeOwner/BrowserChild is not connected to a compositor. - if (mLayersConnected.isNothing() || !*mLayersConnected) { + if (mLayersConnected.isNothing()) { return; }