From 34712449da3f1d897ae07fc85c0234eb3a02da5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 15 Mar 2023 20:11:39 +0100 Subject: [PATCH] endSessionDialog: Catch async errors Otherwise the actual error is masked by an "unhandled promise rejection" error, making it harder to track down the underlying cause. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6506 Part-of: --- js/ui/endSessionDialog.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js index 66fc2e6f9..3de1085ab 100644 --- a/js/ui/endSessionDialog.js +++ b/js/ui/endSessionDialog.js @@ -235,7 +235,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog { this._loginManager = LoginManager.getLoginManager(); this._canRebootToBootLoaderMenu = false; - this._getCanRebootToBootLoaderMenu(); + this._getCanRebootToBootLoaderMenu().catch(logError); this._userManager = AccountsService.UserManager.get_default(); this._user = this._userManager.get_user(GLib.get_user_name()); @@ -449,7 +449,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog { action: () => { let signalId = this.connect('closed', () => { this.disconnect(signalId); - this._confirm(signal); + this._confirm(signal).catch(logError); }); this.close(true); }, @@ -501,7 +501,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog { _confirmRebootToBootLoaderMenu() { this._loginManager.setRebootToBootLoaderMenu(); - this._confirm('ConfirmedReboot'); + this._confirm('ConfirmedReboot').catch(logError); } async _confirm(signal) { @@ -589,7 +589,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog { let dialogContent = DialogContent[this._type]; let button = dialogContent.confirmButtons[dialogContent.confirmButtons.length - 1]; - this._confirm(button.signal); + this._confirm(button.signal).catch(logError); this._timerId = 0; return GLib.SOURCE_REMOVE; @@ -759,7 +759,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog { } if (dialogContent.showOtherSessions) - this._loadSessions(); + this._loadSessions().catch(logError); let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed;