[gnome-shell] introspect: Make invocation check error-based



commit 3b9e672a09dc6cdd997a579be9b310b60dcbb7bc
Author: Florian Müllner <fmuellner gnome org>
Date:   Thu Sep 2 16:23:38 2021 +0200

    introspect: Make invocation check error-based
    
    If we throw an error when the invocation isn't allowed instead of
    returning false, we can simply return that error instead of duplicating
    the error handling.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1970>

 js/misc/introspect.js | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)
---
diff --git a/js/misc/introspect.js b/js/misc/introspect.js
index 85f491a693..3cb021cb1f 100644
--- a/js/misc/introspect.js
+++ b/js/misc/introspect.js
@@ -137,21 +137,23 @@ var IntrospectService = class {
                 type == Meta.WindowType.UTILITY;
     }
 
-    _isInvocationAllowed(invocation) {
+    _checkInvocation(invocation) {
         if (this._isIntrospectEnabled())
-            return true;
+            return;
 
         if (this._isSenderAllowed(invocation.get_sender()))
-            return true;
+            return;
 
-        return false;
+        throw new GLib.Error(Gio.DBusError,
+            Gio.DBusError.ACCESS_DENIED,
+            'App introspection not allowed');
     }
 
     GetRunningApplicationsAsync(params, invocation) {
-        if (!this._isInvocationAllowed(invocation)) {
-            invocation.return_error_literal(Gio.DBusError,
-                                            Gio.DBusError.ACCESS_DENIED,
-                                            'App introspection not allowed');
+        try {
+            this._checkInvocation(invocation);
+        } catch (e) {
+            invocation.return_gerror(e);
             return;
         }
 
@@ -163,10 +165,10 @@ var IntrospectService = class {
         let apps = this._appSystem.get_running();
         let windowsList = {};
 
-        if (!this._isInvocationAllowed(invocation)) {
-            invocation.return_error_literal(Gio.DBusError,
-                                            Gio.DBusError.ACCESS_DENIED,
-                                            'App introspection not allowed');
+        try {
+            this._checkInvocation(invocation);
+        } catch (e) {
+            invocation.return_gerror(e);
             return;
         }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]