mirror of
https://github.com/edu4rdshl/gnome-shell.git
synced 2026-07-17 23:24:51 +00:00
status/location: Handle geoclue not being activatable
In GNOME OS, due to a misconfiguration, geoclue was configured without
systemd support. In that configuration, geoclue does not install its
systemd .service file (geoclue.service) but it (incorrectly) includes
the following line in its D-Bus service file:
SystemdService=geoclue.service
As a result, when dbus-daemon tried to activate it at gnome-shell's
request, it would fail with:
Unit geoclue.service not found
Then, GeoclueAgent._onGeoclueVanished() would be called, as the
name_vanished_handler passed to Gio.bus_watch_name(). This is consistent
with Gio.bus_watch_name()'s documentation:
> You are guaranteed that one of the handlers will be invoked after
> calling this function.
But that function assumed that this._managerProxy is defined, leading
to:
JS ERROR: TypeError: this._managerProxy is undefined
_onGeoclueVanished@resource:///org/gnome/shell/ui/status/location.js:163:9
Fix this by checking for nullishness of this._managerProxy. (Strictly
speaking, it's undefined rather than being null, but other code in this
file already uses the vaguer '!= null' test, which considers undefined
to be null.)
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2689>
This commit is contained in:
parent
e258cff264
commit
ab0c795e81
1 changed files with 1 additions and 1 deletions
|
|
@ -160,7 +160,7 @@ var GeoclueAgent = GObject.registerClass({
|
|||
}
|
||||
|
||||
_onGeoclueVanished() {
|
||||
this._managerProxy.disconnectObject(this);
|
||||
this._managerProxy?.disconnectObject(this);
|
||||
this._managerProxy = null;
|
||||
|
||||
this.notify('in-use');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue