introspect: Use MetaContext:unsafe-mode instead of setting

The property was added precisely for this purpose, except that its
name isn't tied to the introspect API.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3943

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1970>
This commit is contained in:
Florian Müllner 2021-09-01 21:18:42 +02:00 committed by Marge Bot
parent 3b9e672a09
commit 317f0f5fe0

View File

@ -1,8 +1,6 @@
/* exported IntrospectService */ /* exported IntrospectService */
const { Gio, GLib, Meta, Shell, St } = imports.gi; const { Gio, GLib, Meta, Shell, St } = imports.gi;
const INTROSPECT_SCHEMA = 'org.gnome.shell';
const INTROSPECT_KEY = 'introspect';
const APP_ALLOWLIST = [ const APP_ALLOWLIST = [
'org.freedesktop.impl.portal.desktop.gtk', 'org.freedesktop.impl.portal.desktop.gtk',
'org.freedesktop.impl.portal.desktop.gnome', 'org.freedesktop.impl.portal.desktop.gnome',
@ -36,10 +34,6 @@ var IntrospectService = class {
this._syncRunningApplications(); this._syncRunningApplications();
}); });
this._introspectSettings = new Gio.Settings({
schema_id: INTROSPECT_SCHEMA,
});
let tracker = Shell.WindowTracker.get_default(); let tracker = Shell.WindowTracker.get_default();
tracker.connect('notify::focus-app', tracker.connect('notify::focus-app',
() => { () => {
@ -73,10 +67,6 @@ var IntrospectService = class {
return app.get_windows().some(w => w.transient_for == null); return app.get_windows().some(w => w.transient_for == null);
} }
_isIntrospectEnabled() {
return this._introspectSettings.get_boolean(INTROSPECT_KEY);
}
_isSenderAllowed(sender) { _isSenderAllowed(sender) {
return [...this._allowlistMap.values()].includes(sender); return [...this._allowlistMap.values()].includes(sender);
} }
@ -138,7 +128,7 @@ var IntrospectService = class {
} }
_checkInvocation(invocation) { _checkInvocation(invocation) {
if (this._isIntrospectEnabled()) if (global.context.unsafe_mode)
return; return;
if (this._isSenderAllowed(invocation.get_sender())) if (this._isSenderAllowed(invocation.get_sender()))