diff --git a/data/dbus-interfaces/net.reactivated.Fprint.Manager.xml b/data/dbus-interfaces/net.reactivated.Fprint.Manager.xml new file mode 100644 index 000000000..21e03f2c0 --- /dev/null +++ b/data/dbus-interfaces/net.reactivated.Fprint.Manager.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + diff --git a/data/gnome-shell-dbus-interfaces.gresource.xml b/data/gnome-shell-dbus-interfaces.gresource.xml index e74070039..c705a2284 100644 --- a/data/gnome-shell-dbus-interfaces.gresource.xml +++ b/data/gnome-shell-dbus-interfaces.gresource.xml @@ -2,6 +2,7 @@ net.hadess.SensorProxy.xml + net.reactivated.Fprint.Manager.xml org.freedesktop.Application.xml org.freedesktop.bolt1.Device.xml org.freedesktop.bolt1.Manager.xml diff --git a/js/gdm/fingerprint.js b/js/gdm/fingerprint.js deleted file mode 100644 index e23a77beb..000000000 --- a/js/gdm/fingerprint.js +++ /dev/null @@ -1,33 +0,0 @@ -// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- -/* exported FprintManager */ - -const Gio = imports.gi.Gio; - -const FprintManagerIface = ` - - - - - - -`; - -const FprintManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(FprintManagerIface); - -function FprintManager() { - var self = new Gio.DBusProxy({ g_connection: Gio.DBus.system, - g_interface_name: FprintManagerInfo.name, - g_interface_info: FprintManagerInfo, - g_name: 'net.reactivated.Fprint', - g_object_path: '/net/reactivated/Fprint/Manager', - g_flags: Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES }); - - try { - self.init(null); - } catch (e) { - log(`Failed to connect to Fprint service: ${e.message}`); - return null; - } - - return self; -} diff --git a/js/gdm/util.js b/js/gdm/util.js index af1357466..bcf8a514c 100644 --- a/js/gdm/util.js +++ b/js/gdm/util.js @@ -6,13 +6,16 @@ const { Clutter, Gdm, Gio, GLib } = imports.gi; const Signals = imports.signals; const Batch = imports.gdm.batch; -const Fprint = imports.gdm.fingerprint; const OVirt = imports.gdm.oVirt; const Vmware = imports.gdm.vmware; const Main = imports.ui.main; +const { loadInterfaceXML } = imports.misc.fileUtils; const Params = imports.misc.params; const SmartcardManager = imports.misc.smartcardManager; +const FprintManagerIface = loadInterfaceXML('net.reactivated.Fprint.Manager'); +const FprintManagerProxy = Gio.DBusProxy.makeProxyWrapper(FprintManagerIface); + Gio._promisify(Gdm.Client.prototype, 'open_reauthentication_channel', 'open_reauthentication_channel_finish'); Gio._promisify(Gdm.Client.prototype, @@ -138,7 +141,12 @@ var ShellUserVerifier = class { this._updateDefaultService.bind(this)); this._updateDefaultService(); - this._fprintManager = Fprint.FprintManager(); + this._fprintManager = new FprintManagerProxy(Gio.DBus.system, + 'net.reactivated.Fprint', + '/net/reactivated/Fprint/Manager', + null, + null, + Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES); this._smartcardManager = SmartcardManager.getSmartcardManager(); // We check for smartcards right away, since an inserted smartcard diff --git a/js/js-resources.gresource.xml b/js/js-resources.gresource.xml index 30582aad0..45b5de436 100644 --- a/js/js-resources.gresource.xml +++ b/js/js-resources.gresource.xml @@ -3,7 +3,6 @@ gdm/authPrompt.js gdm/batch.js - gdm/fingerprint.js gdm/loginDialog.js gdm/oVirt.js gdm/credentialManager.js