Fix connection to wifi APs from user menu (RH #1628263)
In recent Fedora 29, connecting to wifi access points from the user menu (top-right menu) does not work. Clicking the 'Connect' button just animates it but does nothing else. The logs show an error "JS ERROR: Error: Expected type utf8 for Argument 'specific_object' but got type 'undefined'".
Looking into this, it seems the problem is these uses of the
path property of an NMAccessPoint. NMAccessPoint inherits
from NMObject, and NMObject does have a path property:
so at first glance this seems fine. But I poked around a bit
using libnm via Python (which goes via introspection, just like
this JS code does), and found that indeed AccessPoint objects
don't seem to have a
path property there either.
Looking at the libnm code, this actually makes sense, because the property is marked "(skip)":
and the introspection docs suggest that means it should be left out of introspected output:
I'm a bit concerned that this was only found recently - whereas
the change to use
.path in gnome-shell dates from October 2017
(d71af5e5) and the property has been marked (skip) in NM since
at least 2016 - but this all seems to add up. The obvious fix is
to replace use of
.get_path(), which returns the
path and is not marked (skip) and so is available via
introspection. I tested that this works in Python and also did
a test build of gnome-shell with this change and installed it on
an affected system, it does seem to fix the bug.
Signed-off-by: Adam Williamson firstname.lastname@example.org