[gnome-shell] screenshot: Unrestrict PickColor



commit a3dcdaae30bdcbadec7ba3fa31c9eb0bb2a4c8c2
Author: Florian Müllner <fmuellner gnome org>
Date:   Sat Sep 25 14:15:32 2021 +0200

    screenshot: Unrestrict PickColor
    
    Commit dd2cd6286cd3 restricted callers of the screenshot methods to
    portal implementations, gnome-settings-daemon and gnome-screenshot.
    
    That restriction does make sense for the actual screenshot methods,
    but `PickColor` is actually used by GTK in its color picker (and
    therefore may be called from arbitrary applications).
    
    Fix this by unrestricting access to `PickColor` again. Considering that
    the method is always interactive, it's not very privacy/security-sensitive
    anyway.
    
    https://gitlab.gnome.org/GNOME/gtk/-/issues/4283
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1990>

 js/ui/screenshot.js | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/js/ui/screenshot.js b/js/ui/screenshot.js
index bf537b7d6d..ae1156f477 100644
--- a/js/ui/screenshot.js
+++ b/js/ui/screenshot.js
@@ -37,7 +37,7 @@ var ScreenshotService = class {
         Gio.DBus.session.own_name('org.gnome.Shell.Screenshot', Gio.BusNameOwnerFlags.REPLACE, null, null);
     }
 
-    _createScreenshot(invocation, needsDisk = true) {
+    _createScreenshot(invocation, needsDisk = true, restrictCallers = true) {
         let lockedDown = false;
         if (needsDisk)
             lockedDown = this._lockdownSettings.get_boolean('disable-save-to-disk');
@@ -53,7 +53,7 @@ var ScreenshotService = class {
                 Gio.IOErrorEnum, Gio.IOErrorEnum.PERMISSION_DENIED,
                 'Saving to disk is disabled');
             return null;
-        } else {
+        } else if (restrictCallers) {
             try {
                 this._senderChecker.checkInvocation(invocation);
             } catch (e) {
@@ -311,7 +311,7 @@ var ScreenshotService = class {
     }
 
     async PickColorAsync(params, invocation) {
-        const screenshot = this._createScreenshot(invocation, false);
+        const screenshot = this._createScreenshot(invocation, false, false);
         if (!screenshot)
             return;
 


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