Blame SOURCES/respect-disk-writes-lockdown-setting.patch

13bb5b
From 6625c06d5da50979ea4a350a168abfa5cc1e8498 Mon Sep 17 00:00:00 2001
13bb5b
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
13bb5b
Date: Fri, 3 Oct 2014 16:49:21 +0200
13bb5b
Subject: [PATCH 1/3] screencast: Don't leak recorders on failure
13bb5b
13bb5b
ShellRecorder.record() may fail, remove the recorder from the map
13bb5b
in that case.
13bb5b
13bb5b
https://bugzilla.gnome.org/show_bug.cgi?id=737846
13bb5b
---
13bb5b
 js/ui/screencast.js | 4 ++++
13bb5b
 1 file changed, 4 insertions(+)
13bb5b
13bb5b
diff --git a/js/ui/screencast.js b/js/ui/screencast.js
13bb5b
index 168f589..99f0366 100644
13bb5b
--- a/js/ui/screencast.js
13bb5b
+++ b/js/ui/screencast.js
13bb5b
@@ -109,6 +109,8 @@ const ScreencastService = new Lang.Class({
13bb5b
             this._applyOptionalParameters(recorder, options);
13bb5b
             let [success, fileName] = recorder.record();
13bb5b
             returnValue = [success, fileName ? fileName : ''];
13bb5b
+            if (!success)
13bb5b
+                this._stopRecordingForSender(sender);
13bb5b
         }
13bb5b
 
13bb5b
         invocation.return_value(GLib.Variant.new('(bs)', returnValue));
13bb5b
@@ -142,6 +144,8 @@ const ScreencastService = new Lang.Class({
13bb5b
             this._applyOptionalParameters(recorder, options);
13bb5b
             let [success, fileName] = recorder.record();
13bb5b
             returnValue = [success, fileName ? fileName : ''];
13bb5b
+            if (!success)
13bb5b
+                this._stopRecordingForSender(sender);
13bb5b
         }
13bb5b
 
13bb5b
         invocation.return_value(GLib.Variant.new('(bs)', returnValue));
13bb5b
-- 
13bb5b
2.1.0
13bb5b
13bb5b
13bb5b
From 6c6e8f04f466909ed16670bc1c1ae77e30deb95d Mon Sep 17 00:00:00 2001
13bb5b
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
13bb5b
Date: Fri, 3 Oct 2014 16:40:49 +0200
13bb5b
Subject: [PATCH 2/3] screencast: Re-add lockdown support
13bb5b
13bb5b
Commit 81bb7009ea120d3 removed support for the disable-disk-writes
13bb5b
lockdown feature for screencasts, add it back.
13bb5b
13bb5b
https://bugzilla.gnome.org/show_bug.cgi?id=737846
13bb5b
---
13bb5b
 js/ui/screencast.js | 8 ++++++--
13bb5b
 1 file changed, 6 insertions(+), 2 deletions(-)
13bb5b
13bb5b
diff --git a/js/ui/screencast.js b/js/ui/screencast.js
13bb5b
index 99f0366..63caecb 100644
13bb5b
--- a/js/ui/screencast.js
13bb5b
+++ b/js/ui/screencast.js
13bb5b
@@ -41,6 +41,8 @@ const ScreencastService = new Lang.Class({
13bb5b
 
13bb5b
         this._recorders = new Hash.Map();
13bb5b
 
13bb5b
+        this._lockdownSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.lockdown' });
13bb5b
+
13bb5b
         Main.sessionMode.connect('updated',
13bb5b
                                  Lang.bind(this, this._sessionModeChanged));
13bb5b
     },
13bb5b
@@ -95,7 +97,8 @@ const ScreencastService = new Lang.Class({
13bb5b
 
13bb5b
     ScreencastAsync: function(params, invocation) {
13bb5b
         let returnValue = [false, ''];
13bb5b
-        if (!Main.sessionMode.allowScreencast) {
13bb5b
+        if (!Main.sessionMode.allowScreencast ||
13bb5b
+            this._lockdownSettings.get_boolean('disable-save-to-disk')) {
13bb5b
             invocation.return_value(GLib.Variant.new('(bs)', returnValue));
13bb5b
             return;
13bb5b
         }
13bb5b
@@ -118,7 +121,8 @@ const ScreencastService = new Lang.Class({
13bb5b
 
13bb5b
     ScreencastAreaAsync: function(params, invocation) {
13bb5b
         let returnValue = [false, ''];
13bb5b
-        if (!Main.sessionMode.allowScreencast) {
13bb5b
+        if (!Main.sessionMode.allowScreencast ||
13bb5b
+            this._lockdownSettings.get_boolean('disable-save-to-disk')) {
13bb5b
             invocation.return_value(GLib.Variant.new('(bs)', returnValue));
13bb5b
             return;
13bb5b
         }
13bb5b
-- 
13bb5b
2.1.0
13bb5b
13bb5b
13bb5b
From 2cfc69f5ddfd126e2c2be5180e782e67c431631a Mon Sep 17 00:00:00 2001
13bb5b
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
13bb5b
Date: Fri, 3 Oct 2014 16:33:37 +0200
13bb5b
Subject: [PATCH 3/3] screenshot: Respect lockdown settings
13bb5b
13bb5b
We allow users/admins to lock down disk writes, respect that when
13bb5b
taking screenshots.
13bb5b
13bb5b
https://bugzilla.gnome.org/show_bug.cgi?id=737846
13bb5b
---
13bb5b
 js/ui/screenshot.js | 5 ++++-
13bb5b
 1 file changed, 4 insertions(+), 1 deletion(-)
13bb5b
13bb5b
diff --git a/js/ui/screenshot.js b/js/ui/screenshot.js
13bb5b
index dd6448e..6e08fb5 100644
13bb5b
--- a/js/ui/screenshot.js
13bb5b
+++ b/js/ui/screenshot.js
13bb5b
@@ -64,12 +64,15 @@ const ScreenshotService = new Lang.Class({
13bb5b
 
13bb5b
         this._screenShooter = new Hash.Map();
13bb5b
 
13bb5b
+        this._lockdownSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.lockdown' });
13bb5b
+
13bb5b
         Gio.DBus.session.own_name('org.gnome.Shell.Screenshot', Gio.BusNameOwnerFlags.REPLACE, null, null);
13bb5b
     },
13bb5b
 
13bb5b
     _createScreenshot: function(invocation) {
13bb5b
         let sender = invocation.get_sender();
13bb5b
-        if (this._screenShooter.has(sender)) {
13bb5b
+        if (this._screenShooter.has(sender) ||
13bb5b
+            this._lockdownSettings.get_boolean('disable-save-to-disk')) {
13bb5b
             invocation.return_value(GLib.Variant.new('(bs)', [false, '']));
13bb5b
             return null;
13bb5b
         }
13bb5b
-- 
13bb5b
2.1.0
13bb5b