From 13ca6fea2c5b1a60a3d601c4d7c0bdc93f7998e6 Mon Sep 17 00:00:00 2001 From: Imanol Fernandez Date: Thu, 27 Feb 2020 17:30:35 +0100 Subject: [PATCH] Fix deadlock when managing tabs with library panel open (#2891) --- .../org/mozilla/vrbrowser/ui/widgets/WindowWidget.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/WindowWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/WindowWidget.java index 0bcd69300..b064173fc 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/WindowWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/WindowWidget.java @@ -1585,8 +1585,14 @@ public void onFirstContentfulPaint(@NonNull GeckoSession session) { mUIThreadExecutor.execute(mFirstDrawCallback); mFirstDrawCallback = null; mAfterFirstPaint = true; - mSetViewQueuedCalls.forEach(Runnable::run); - mSetViewQueuedCalls.clear(); + // view queue calls need to be delayed to avoid a deadlock + // caused by GeckoSession.syncResumeResizeCompositor() + // See: https://github.com/MozillaReality/FirefoxReality/issues/2889 + mUIThreadExecutor.execute(() -> { + mSetViewQueuedCalls.forEach(Runnable::run); + mSetViewQueuedCalls.clear(); + }); + } }