Go to file
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>
2018-09-18 16:15:32 -07:00
.settings Convert all JS style to be uniform, add Eclipse settings bits 2008-11-28 20:12:20 +00:00
browser-plugin docs: Use Markdown 2018-05-23 19:03:01 +02:00
data dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
docs/reference build: Fix build with gtk-doc=true 2018-09-17 15:30:15 +02:00
js Fix connection to wifi APs from user menu (RH #1628263) 2018-09-18 16:15:32 -07:00
man man: Update project website 2018-01-07 21:39:18 +01:00
meson build: Run postinstall script where necessary 2018-04-09 19:19:33 +00:00
po Update Arabic translation 2018-09-18 12:44:00 +02:00
src app: Close all closable windows from quit() 2018-09-13 10:54:39 +00:00
subprojects build: Update gvc to support renamed options 2018-01-30 13:37:38 +01:00
tests utils: Simplify URL regex to only support one layer of parentheses 2018-04-13 18:15:44 +00:00
tools tools: Migrate changed overrides settings 2018-07-31 18:36:26 +00:00
.gitignore data: Add README and supporting script to update keyboard layouts from CLDR 2018-02-05 17:46:57 +01:00
.gitmodules theme: Replace gnome-shell-sass submodule with subtree 2018-02-09 21:45:09 +00:00
.project Convert all JS style to be uniform, add Eclipse settings bits 2008-11-28 20:12:20 +00:00
config.h.meson Add check_cloexec_fds debug command 2018-07-30 23:11:41 +00:00
COPYING Changed obsolete FSF postal address. 2014-01-08 04:35:14 +07:00
gnome-shell.doap doap: add <programming-language> 2014-07-31 17:48:46 +02:00
HACKING.md docs: Use Markdown 2018-05-23 19:03:01 +02:00
meson_options.txt build: Stop detecting features automatically 2017-11-30 00:24:53 +01:00
meson.build Bump version to 3.30.0 2018-09-04 00:08:01 +02:00
NEWS Bump version to 3.30.0 2018-09-04 00:08:01 +02:00
README.md Fix README link 2018-09-01 15:01:46 +01:00

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.