diff --git a/public/scripts/extensions.js b/public/scripts/extensions.js index 6dee9a795..2751fa31e 100644 --- a/public/scripts/extensions.js +++ b/public/scripts/extensions.js @@ -690,7 +690,12 @@ async function showExtensionsDetails() { let popupPromise; try { // If we are updating an extension, the "old" popup is still active. We should close that. - await Popup.util.popups.find(popup => popup.content.querySelector('.extensions_info'))?.completeCancelled(); + let initialScrollTop = 0; + const oldPopup = Popup.util.popups.find(popup => popup.content.querySelector('.extensions_info')); + if (oldPopup) { + initialScrollTop = oldPopup.content.scrollTop; + await oldPopup.completeCancelled(); + } const htmlDefault = $('

Built-in Extensions:

'); const htmlExternal = $('

Installed Extensions:

'); const htmlLoading = $(`
@@ -749,6 +754,7 @@ async function showExtensionsDetails() { }, }); popupPromise = popup.show(); + popup.content.scrollTop = initialScrollTop; checkForUpdatesManual(abortController.signal).finally(() => htmlLoading.remove()); } catch (error) { toastr.error(t`Error loading extensions. See browser console for details.`);