|
|
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 |
|