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