Adam Williamson
33ffdd6061
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: https://developer.gnome.org/libnm/stable/NMObject.html#NMObject--path 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)": https://github.com/NetworkManager/NetworkManager/blob/master/libnm/nm-object.c#L1291 and the introspection docs suggest that means it should be left out of introspected output: https://wiki.gnome.org/Projects/GObjectIntrospection/Annotations#Symbol_visibility 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 `.path` with `.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 <awilliam@redhat.com>
GNOME Shell
GNOME Shell provides core user interface functions for the GNOME 3 desktop, like switching to windows and launching applications. GNOME Shell takes advantage of the capabilities of modern graphics hardware and introduces innovative user interface concepts to provide a visually attractive and easy to use experience.
For more information about GNOME Shell, including instructions on how to build GNOME Shell from source and how to get involved with the project, see the project wiki.
Bugs should be reported to the GNOME bug tracking system.
License
GNOME Shell is distributed under the terms of the GNU General Public License, version 2 or later. See the COPYING file for details.
Description
Languages
C
49.2%
JavaScript
47.4%
SCSS
1.4%
Meson
0.8%
Python
0.6%
Other
0.4%