diff --git a/js/Makefile.am b/js/Makefile.am
index 91dc84ca7..37c4a9278 100644
--- a/js/Makefile.am
+++ b/js/Makefile.am
@@ -17,14 +17,13 @@ jsdir = $(pkgdatadir)/js
nobase_dist_js_DATA = \
gdm/batch.js \
- gdm/consoleKit.js \
gdm/fingerprint.js \
gdm/loginDialog.js \
gdm/powerMenu.js \
- gdm/systemd.js \
gdm/util.js \
extensionPrefs/main.js \
misc/config.js \
+ misc/consoleKit.js \
misc/extensionUtils.js \
misc/fileUtils.js \
misc/gnomeSession.js \
@@ -32,6 +31,7 @@ nobase_dist_js_DATA = \
misc/jsParse.js \
misc/modemManager.js \
misc/params.js \
+ misc/systemd.js \
misc/util.js \
perf/core.js \
ui/altTab.js \
diff --git a/js/gdm/consoleKit.js b/js/gdm/consoleKit.js
deleted file mode 100644
index 6445a8c04..000000000
--- a/js/gdm/consoleKit.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
-
-const Gio = imports.gi.Gio;
-
-const ConsoleKitManagerIface =
-
-
-
-
-
-
-
-
-;
-
-const ConsoleKitProxy = Gio.DBusProxy.makeProxyWrapper(ConsoleKitManagerIface);
-
-function ConsoleKitManager() {
- return new ConsoleKitProxy(Gio.DBus.system,
- 'org.freedesktop.ConsoleKit',
- '/org/freedesktop/ConsoleKit/Manager');
-};
diff --git a/js/gdm/powerMenu.js b/js/gdm/powerMenu.js
index 613a89607..e06c7a268 100644
--- a/js/gdm/powerMenu.js
+++ b/js/gdm/powerMenu.js
@@ -21,8 +21,8 @@
const Lang = imports.lang;
const UPowerGlib = imports.gi.UPowerGlib;
-const ConsoleKit = imports.gdm.consoleKit;
-const Systemd = imports.gdm.systemd;
+const ConsoleKit = imports.misc.consoleKit;
+const Systemd = imports.misc.systemd;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
diff --git a/js/misc/consoleKit.js b/js/misc/consoleKit.js
new file mode 100644
index 000000000..96afd5ac8
--- /dev/null
+++ b/js/misc/consoleKit.js
@@ -0,0 +1,55 @@
+// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
+
+const Gio = imports.gi.Gio;
+
+const ConsoleKitManagerIface =
+
+
+
+
+
+
+
+
+
+
+
+;
+
+const ConsoleKitSessionIface =
+
+
+
+
+
+
+
+
+;
+
+const ConsoleKitSessionProxy = Gio.DBusProxy.makeProxyWrapper(ConsoleKitSessionIface);
+
+const ConsoleKitManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(ConsoleKitManagerIface);
+
+function ConsoleKitManager() {
+ var self = new Gio.DBusProxy({ g_connection: Gio.DBus.system,
+ g_interface_name: ConsoleKitManagerInfo.name,
+ g_interface_info: ConsoleKitManagerInfo,
+ g_name: 'org.freedesktop.ConsoleKit',
+ g_object_path: '/org/freedesktop/ConsoleKit/Manager',
+ g_flags: Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES });
+ self.init(null);
+
+ self.GetCurrentSessionRemote(function([session]) {
+ self.ckSession = new ConsoleKitSessionProxy(Gio.DBus.system, 'org.freedesktop.ConsoleKit', session);
+
+ self.ckSession.connectSignal('ActiveChanged', function(object, senderName, [isActive]) {
+ self.sessionActive = isActive;
+ });
+ self.ckSession.IsActiveRemote(function([isActive]) {
+ self.sessionActive = isActive;
+ });
+ });
+
+ return self;
+}
diff --git a/js/gdm/systemd.js b/js/misc/systemd.js
similarity index 65%
rename from js/gdm/systemd.js
rename to js/misc/systemd.js
index 8dd73abee..39ef12933 100644
--- a/js/gdm/systemd.js
+++ b/js/misc/systemd.js
@@ -18,14 +18,27 @@ const SystemdLoginManagerIface =
+
+
+;
+
const SystemdLoginManagerProxy = Gio.DBusProxy.makeProxyWrapper(SystemdLoginManagerIface);
+const SystemdLoginSessionProxy = Gio.DBusProxy.makeProxyWrapper(SystemdLoginSessionIface);
+
function SystemdLoginManager() {
return new SystemdLoginManagerProxy(Gio.DBus.system,
'org.freedesktop.login1',
'/org/freedesktop/login1');
};
+function SystemdLoginSession(id) {
+ return new SystemdLoginSessionProxy(Gio.DBus.system,
+ 'org.freedesktop.login1',
+ '/org/freedesktop/login1/session/' + id);
+}
+
function haveSystemd() {
return GLib.access("/sys/fs/cgroup/systemd", 0) >= 0;
}
diff --git a/js/ui/automountManager.js b/js/ui/automountManager.js
index 69a94cb82..19f2aca66 100644
--- a/js/ui/automountManager.js
+++ b/js/ui/automountManager.js
@@ -5,11 +5,13 @@ const Mainloop = imports.mainloop;
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const Params = imports.misc.params;
-
const Shell = imports.gi.Shell;
+
+const ConsoleKit = imports.misc.consoleKit;
+const GnomeSession = imports.misc.gnomeSession;
const Main = imports.ui.main;
const ShellMountOperation = imports.ui.shellMountOperation;
-const GnomeSession = imports.misc.gnomeSession;
+const Systemd = imports.misc.systemd;
const GNOME_SESSION_AUTOMOUNT_INHIBIT = 16;
@@ -19,62 +21,6 @@ const SETTING_ENABLE_AUTOMOUNT = 'automount';
const AUTORUN_EXPIRE_TIMEOUT_SECS = 10;
-const ConsoleKitSessionIface =
-
-
-
-
-
-
-;
-
-const ConsoleKitSessionProxy = Gio.DBusProxy.makeProxyWrapper(ConsoleKitSessionIface);
-
-const ConsoleKitManagerIface =
-
-
-
-;
-
-const ConsoleKitManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(ConsoleKitManagerIface);
-
-function ConsoleKitManager() {
- var self = new Gio.DBusProxy({ g_connection: Gio.DBus.system,
- g_interface_name: ConsoleKitManagerInfo.name,
- g_interface_info: ConsoleKitManagerInfo,
- g_name: 'org.freedesktop.ConsoleKit',
- g_object_path: '/org/freedesktop/ConsoleKit/Manager',
- g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START |
- Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
-
- self._updateSessionActive = function() {
- if (self.g_name_owner) {
- self.GetCurrentSessionRemote(function([session]) {
- self._ckSession = new ConsoleKitSessionProxy(Gio.DBus.system, 'org.freedesktop.ConsoleKit', session);
-
- self._ckSession.connectSignal('ActiveChanged', function(object, senderName, [isActive]) {
- self.sessionActive = isActive;
- });
- self._ckSession.IsActiveRemote(function([isActive]) {
- self.sessionActive = isActive;
- });
- });
- } else {
- self.sessionActive = true;
- }
- };
- self.connect('notify::g-name-owner',
- Lang.bind(self, self._updateSessionActive));
-
- self._updateSessionActive();
- self.init(null);
- return self;
-}
-
-function haveSystemd() {
- return GLib.access("/sys/fs/cgroup/systemd", 0) >= 0;
-}
-
const AutomountManager = new Lang.Class({
Name: 'AutomountManager',
@@ -88,8 +34,8 @@ const AutomountManager = new Lang.Class({
Lang.bind(this, this._InhibitorsChanged));
this._inhibited = false;
- if (!haveSystemd())
- this.ckListener = new ConsoleKitManager();
+ if (!Systemd.haveSystemd())
+ this.ckListener = new ConsoleKit.ConsoleKitManager();
Main.screenShield.connect('lock-status-changed', Lang.bind(this, this._lockStatusChanged));
@@ -151,7 +97,7 @@ const AutomountManager = new Lang.Class({
// right mechanism: either systemd if available or ConsoleKit
// as fallback.
- if (haveSystemd())
+ if (Systemd.haveSystemd())
return Shell.session_is_active_for_systemd();
return this.ckListener.sessionActive;