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: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2696>
This commit is contained in:
Florian Müllner 2023-03-15 20:11:39 +01:00 committed by Marge Bot
parent 2709d15ae0
commit 34712449da

View File

@ -235,7 +235,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
this._loginManager = LoginManager.getLoginManager(); this._loginManager = LoginManager.getLoginManager();
this._canRebootToBootLoaderMenu = false; this._canRebootToBootLoaderMenu = false;
this._getCanRebootToBootLoaderMenu(); this._getCanRebootToBootLoaderMenu().catch(logError);
this._userManager = AccountsService.UserManager.get_default(); this._userManager = AccountsService.UserManager.get_default();
this._user = this._userManager.get_user(GLib.get_user_name()); this._user = this._userManager.get_user(GLib.get_user_name());
@ -449,7 +449,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
action: () => { action: () => {
let signalId = this.connect('closed', () => { let signalId = this.connect('closed', () => {
this.disconnect(signalId); this.disconnect(signalId);
this._confirm(signal); this._confirm(signal).catch(logError);
}); });
this.close(true); this.close(true);
}, },
@ -501,7 +501,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
_confirmRebootToBootLoaderMenu() { _confirmRebootToBootLoaderMenu() {
this._loginManager.setRebootToBootLoaderMenu(); this._loginManager.setRebootToBootLoaderMenu();
this._confirm('ConfirmedReboot'); this._confirm('ConfirmedReboot').catch(logError);
} }
async _confirm(signal) { async _confirm(signal) {
@ -589,7 +589,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
let dialogContent = DialogContent[this._type]; let dialogContent = DialogContent[this._type];
let button = dialogContent.confirmButtons[dialogContent.confirmButtons.length - 1]; let button = dialogContent.confirmButtons[dialogContent.confirmButtons.length - 1];
this._confirm(button.signal); this._confirm(button.signal).catch(logError);
this._timerId = 0; this._timerId = 0;
return GLib.SOURCE_REMOVE; return GLib.SOURCE_REMOVE;
@ -759,7 +759,7 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
} }
if (dialogContent.showOtherSessions) if (dialogContent.showOtherSessions)
this._loadSessions(); this._loadSessions().catch(logError);
let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed; let updatesAllowed = this._updatesPermission && this._updatesPermission.allowed;