gnome-shell/js/ui
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
..
components dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
status Fix connection to wifi APs from user menu (RH #1628263) 2018-09-18 16:15:32 -07:00
accessDialog.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
altTab.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
animation.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
appDisplay.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
appFavorites.js appFavorites: Add evolution to rename list 2018-04-10 14:38:26 +00:00
audioDeviceSelection.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
background.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
backgroundMenu.js cleanup: Use arrow notation for anonymous functions 2018-02-21 13:55:00 +00:00
barLevel.js barLevel: Add "overdrive" capability 2018-07-31 18:14:14 +00:00
boxpointer.js js/ui: Choose some actors to cache on the GPU 2018-08-27 14:16:59 +00:00
calendar.js calendar: chain up to parent on _onDestroy 2018-09-03 22:43:21 +00:00
checkBox.js cleanup: Use method syntax 2018-02-21 13:54:58 +00:00
closeDialog.js closeDialog: use {disable,enable}_unredirect_for_display 2018-07-08 17:43:15 +02:00
ctrlAltTab.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
dash.js js/ui: Choose some actors to cache on the GPU 2018-08-27 14:16:59 +00:00
dateMenu.js worldClock: Handle named timezones 2018-04-13 09:15:48 +00:00
dialog.js js/ui: Choose some actors to cache on the GPU 2018-08-27 14:16:59 +00:00
dnd.js dnd: Nullify _dragActor after we've destroyed it, and avoid invalid access 2018-09-03 22:43:21 +00:00
edgeDragAction.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
endSessionDialog.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
environment.js cleanup: Use arrow notation for anonymous functions 2018-02-21 13:55:00 +00:00
extensionDownloader.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
extensionSystem.js extensionSystem: Unset stylesheet file reference when unloaded 2018-09-03 23:29:01 +00:00
focusCaretTracker.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
grabHelper.js cleanup: Use arrow notation for anonymous functions 2018-02-21 13:55:00 +00:00
ibusCandidatePopup.js ibusCandidatePopup: Fix candidate-clicked signal 2018-04-18 13:37:53 +09:00
iconGrid.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
inhibitShortcutsDialog.js cleanup: Use method syntax 2018-02-21 13:54:58 +00:00
kbdA11yDialog.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
keyboard.js keyboard: Remove leftover call to get_current_time 2018-09-14 12:18:38 +02:00
layout.js layout: Mark chrome container as NO_LAYOUT 2018-08-14 19:13:30 +02:00
lightbox.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
lookingGlass.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
magnifier.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
magnifierDBus.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
main.js js/main: Throw error if no valid default stylesheet is found 2018-09-03 23:29:01 +00:00
messageList.js messageList: stop syncing if closeButton has been destroyed 2018-09-03 22:43:21 +00:00
messageTray.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
modalDialog.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
mpris.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
notificationDaemon.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
osdMonitorLabeler.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
osdWindow.js osdWindow: Allow levels above 100% 2018-07-31 18:14:11 +00:00
overview.js overview: Use whole stage size for cover pane 2018-08-06 10:18:28 +02:00
overviewControls.js overview: Restore previous workspace switcher policy 2018-08-14 17:34:57 +00:00
padOsd.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
panel.js panel: Keep prefs in sync with shell-shows-app-menu state 2018-08-28 23:53:10 +00:00
panelMenu.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
pointerWatcher.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
popupMenu.js popupMenu: Don't handle key presses directly if there are modifiers 2018-07-14 14:04:18 +02:00
remoteMenu.js remoteMenu: Support icons in app-menu 2018-04-14 09:02:20 +00:00
remoteSearch.js js: use ES6 template strings for dbus interfaces 2018-08-27 19:23:00 +02:00
runDialog.js runDialog: Use ClutterText::activate for enter handling 2018-08-17 18:37:32 +00:00
screencast.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
screenShield.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
screenshot.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
scripting.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
search.js search: Ignore search provider results metas if search is cancelled 2018-09-04 01:00:52 +02:00
sessionMode.js Explicitly convert raw data to strings 2018-07-31 16:28:53 +00:00
shellDBus.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
shellEntry.js shellEntry: Use correct enum for input purpose hints 2018-03-14 13:30:47 +00:00
shellMountOperation.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
slider.js barLevel: Support maxValue higher than 1 2018-07-31 18:14:10 +00:00
switcherPopup.js switcherPopup: Cancel window cycling with Tab 2018-07-14 14:35:05 +00:00
switchMonitor.js switchMonitor: switch to next config upon initial keypress 2018-09-13 16:11:16 +00:00
tweener.js cleanup: Use arrow notation for anonymous functions 2018-02-21 13:55:00 +00:00
unlockDialog.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
userWidget.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
viewSelector.js viewSelector: Cancel search on overview hidden 2018-09-04 01:00:52 +02:00
windowAttentionHandler.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00
windowManager.js dbus: Move all interface descriptions into the resource 2018-09-17 07:34:49 +00:00
windowMenu.js windowMenu: Port from Meta.ScreenDirection to Meta.DisplayDirection 2018-09-11 12:59:07 +02:00
workspace.js workspace: Simplify detecting added dialogs after closing a window 2018-08-03 00:09:02 +02:00
workspacesView.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
workspaceSwitcherPopup.js Remove usage of MetaScreen 2018-07-06 19:56:19 +02:00
workspaceThumbnail.js Revert "workspaceThumbnail: rebuild thumbnails if workareas size changed" 2018-08-19 12:41:08 +00:00
xdndHandler.js cleanup: Use Function.prototype.bind() 2018-02-21 13:55:02 +00:00