1
0
Fork 0
mutter-performance-source/src/wayland
Olivier Fourdan 20bb8bf502 wayland: Avoid a race in wl_seat capabilities
The way wl_seat capabilities work, by notifying clients of capabilities
changes, and clients consequently requesting the relevant interface
objects (pointer, keyboard, touch) is inherently racy.

On quick VT changes for example, capabilities on the seat will be added
and removed, and by the time the client receives the capability change
notification and requests the relevant keyboard, pointer or touch,
another VT switch might have occurred and the wl_pointer, wl_keyboard or
wl_touch already destroyed, leading to a protocol error which kills the
client.

To avoid this, create the objects when requested regardless of the
capabilities.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1797
Related: https://bugzilla.gnome.org/show_bug.cgi?id=790932
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/77>
2021-09-16 06:52:20 +00:00
..
protocol wayland/gtk-shell: Add titlebar_gesture request 2021-08-04 14:41:43 +00:00
meta-cursor-sprite-wayland.c cursor-renderer/native: Fetch instead of pass wl_buffer when realizing 2018-06-15 19:09:53 +00:00
meta-cursor-sprite-wayland.h cursor-renderer/native: Fetch instead of pass wl_buffer when realizing 2018-06-15 19:09:53 +00:00
meta-pointer-confinement-wayland.c backends: Delegate pointer confinements to an impl object 2020-11-27 15:14:33 +00:00
meta-pointer-confinement-wayland.h backends: Delegate pointer confinements to an impl object 2020-11-27 15:14:33 +00:00
meta-pointer-lock-wayland.c clutter: Drop clutter_input_device_get_coords() method 2020-11-27 15:14:33 +00:00
meta-pointer-lock-wayland.h backends: Delegate pointer confinements to an impl object 2020-11-27 15:14:33 +00:00
meta-selection-source-wayland-private.h wayland: Move MetaWaylandDataSourcePrimary to its own file 2020-04-17 00:46:23 +02:00
meta-selection-source-wayland.c wayland: Simplify MetaSelectionSourceWayland 2019-10-11 23:04:01 +02:00
meta-wayland-activation.c wayland: Implement the xdg-activation protocol 2021-07-09 09:34:28 +00:00
meta-wayland-activation.h wayland: Implement the xdg-activation protocol 2021-07-09 09:34:28 +00:00
meta-wayland-actor-surface.c wayland/actor-surface: Remove some needles redirections 2021-08-28 13:58:48 +02:00
meta-wayland-actor-surface.h wayland: Drive frame callbacks from stage updates 2020-05-26 16:46:57 +02:00
meta-wayland-buffer.c drm-buffer: Create from MetaDeviceFile instead of MetaKmsDevice 2021-07-07 21:03:26 +02:00
meta-wayland-buffer.h wayland/shm: Advertise support for RGB565 2020-08-07 09:02:49 +00:00
meta-wayland-client.c wayland/client: Free GSubprocessLauncher after spawning 2020-10-02 15:37:52 +00:00
meta-wayland-cursor-surface.c context: Make the context own MetaWaylandCompositor 2021-07-15 11:34:37 +02:00
meta-wayland-cursor-surface.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-data-device-primary-legacy.c wayland: Cancel selection data sources that are set while unfocused 2021-03-23 17:07:31 +00:00
meta-wayland-data-device-primary-legacy.h wayland: Rename gtk primary protocol files to "legacy" 2020-05-13 18:18:14 +02:00
meta-wayland-data-device-primary.c wayland: Cancel selection data sources that are set while unfocused 2021-03-23 17:07:31 +00:00
meta-wayland-data-device-primary.h wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-data-device.c wayland: Close pipe file descriptors after use 2021-05-25 16:31:07 +00:00
meta-wayland-data-device.h wayland: Send clipboard offers to all data devices from the same client 2020-05-13 14:44:55 +00:00
meta-wayland-data-offer-primary-legacy.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-data-offer-primary-legacy.h wayland: Rename gtk primary protocol files to "legacy" 2020-05-13 18:18:14 +02:00
meta-wayland-data-offer-primary.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-data-offer-primary.h wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-data-offer.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-data-offer.h wayland: Move primary data offers to their own file 2020-04-17 00:46:23 +02:00
meta-wayland-data-source-primary-legacy.c wayland: Rename gtk primary protocol files to "legacy" 2020-05-13 18:18:14 +02:00
meta-wayland-data-source-primary-legacy.h wayland: Rename gtk primary protocol files to "legacy" 2020-05-13 18:18:14 +02:00
meta-wayland-data-source-primary.c wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-data-source-primary.h wayland: Add support for wayland-protocols primary selection protocol 2020-05-13 18:27:46 +02:00
meta-wayland-data-source.c wayland: Split MetaWaylandDataSource into a separate file 2020-04-17 00:46:21 +02:00
meta-wayland-data-source.h wayland: Split MetaWaylandDataSource into a separate file 2020-04-17 00:46:21 +02:00
meta-wayland-dma-buf.c wayland-dma-buf: Fix 'kms-modifiers' experimental setting 2021-08-06 10:28:13 +00:00
meta-wayland-dma-buf.h wayland: Add API to acquire a CoglScanout from a surface 2020-04-16 15:05:52 +02:00
meta-wayland-dnd-surface.c wayland/dnd-surface: Use new API to set geometry scale of feedback actor 2021-02-05 09:51:56 +00:00
meta-wayland-dnd-surface.h wayland: Move DND surface role into its own file 2019-01-22 18:32:28 +01:00
meta-wayland-egl-stream.c wayland/egl-stream: Cache texture snippet 2020-01-10 16:01:21 +00:00
meta-wayland-egl-stream.h wayland/egl-stream: Cache texture snippet 2020-01-10 16:01:21 +00:00
meta-wayland-gtk-shell.c wayland/gtk-shell: Add titlebar_gesture request 2021-08-04 14:41:43 +00:00
meta-wayland-gtk-shell.h wayland: Add MetaWaylandGtkShell object 2018-11-27 15:34:13 +01:00
meta-wayland-inhibit-shortcuts-dialog.c cleanup: Use g_clear_signal_handler() where possible 2019-11-21 15:02:27 +00:00
meta-wayland-inhibit-shortcuts-dialog.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-inhibit-shortcuts.c cleanup: Use g_clear_signal_handler() where possible 2019-11-21 15:02:27 +00:00
meta-wayland-inhibit-shortcuts.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-input-device.c wayland/input-device: Add next serial helper 2016-10-11 22:51:50 +08:00
meta-wayland-input-device.h wayland/input-device: Add next serial helper 2016-10-11 22:51:50 +08:00
meta-wayland-keyboard.c wayland/keyboard: Don't free NULL anonymous file 2021-05-05 19:52:04 +00:00
meta-wayland-keyboard.h wayland/keyboard: Use MetaAnonymousFile to share keymap files 2020-04-21 17:52:08 +02:00
meta-wayland-legacy-xdg-shell.c wayland: Fetch wl_output logical monitor via helper 2021-08-22 16:40:42 +00:00
meta-wayland-legacy-xdg-shell.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-outputs.c wayland/output: Fly-by coding style fix 2021-08-22 16:40:42 +00:00
meta-wayland-outputs.h wayland/output: Move struct to C file 2021-08-22 16:40:42 +00:00
meta-wayland-pointer-constraints.c wayland: Ensure pointer constraint region consistency 2021-01-12 12:32:24 +01:00
meta-wayland-pointer-constraints.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gesture-pinch.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gesture-pinch.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gesture-swipe.c wayland/pointer-gestures: Fix swipe cancellation 2021-06-15 22:22:30 +00:00
meta-wayland-pointer-gesture-swipe.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gestures.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer-gestures.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-pointer.c wayland: Avoid a race in wl_seat capabilities 2021-09-16 06:52:20 +00:00
meta-wayland-pointer.h wayland: Drop meta_wayland_compositor_repick() 2020-12-23 12:54:49 +01:00
meta-wayland-popup.c wayland: Make implicit grabs during popups be owner_events=TRUE 2021-06-09 19:00:15 +00:00
meta-wayland-popup.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-presentation-time-private.h wayland: Send presentation feedbacks to cursors 2021-03-08 09:48:12 +00:00
meta-wayland-presentation-time.c wayland/output: Move struct to C file 2021-08-22 16:40:42 +00:00
meta-wayland-private.h context: Make the context own MetaWaylandCompositor 2021-07-15 11:34:37 +02:00
meta-wayland-region.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-region.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-seat.c wayland: Avoid a race in wl_seat capabilities 2021-09-16 06:52:20 +00:00
meta-wayland-seat.h wayland: Drop meta_wayland_compositor_repick() 2020-12-23 12:54:49 +01:00
meta-wayland-shell-surface.c compositor: Trigger repick after window effects here 2020-12-23 12:54:49 +01:00
meta-wayland-shell-surface.h wayland: Rework asynchronous window configuration 2019-12-09 10:09:40 +01:00
meta-wayland-subsurface.c wayland/subsurface: Handle node unlinking on parent destroyed 2021-09-02 21:14:18 +00:00
meta-wayland-subsurface.h wayland/subsurface: Avoid placement ops for detached subsurfaces 2021-04-19 11:55:49 +00:00
meta-wayland-surface.c wayland/subsurface: Handle node unlinking on parent destroyed 2021-09-02 21:14:18 +00:00
meta-wayland-surface.h wayland/subsurface: Move placement ops to the parents pending state 2021-03-14 00:38:18 +01:00
meta-wayland-tablet-cursor-surface.c Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-cursor-surface.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-manager.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-tablet-manager.h core: Centralize cursor renderer and tracker updates 2020-11-27 15:14:33 +00:00
meta-wayland-tablet-pad-group.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-tablet-pad-group.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-pad-ring.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-tablet-pad-ring.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-pad-strip.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-tablet-pad-strip.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-pad.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-tablet-pad.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-tablet-seat.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-tablet-seat.h wayland: Replace ClutterDeviceManager usage in favor of ClutterSeat 2020-01-30 18:02:34 +01:00
meta-wayland-tablet-tool.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-tablet-tool.h core: Centralize cursor renderer and tracker updates 2020-11-27 15:14:33 +00:00
meta-wayland-tablet.c src: Stop using GSlice 2021-02-22 13:52:27 +01:00
meta-wayland-tablet.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-text-input-legacy.c clutter: Prepare input focus for IM event delivery 2020-08-31 08:40:12 +00:00
meta-wayland-text-input-legacy.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-text-input.c wayland: Forward button press / touch down to Wayland text-input impls 2021-09-03 22:05:46 +00:00
meta-wayland-text-input.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-wayland-touch.c wayland: Avoid a race in wl_seat capabilities 2021-09-16 06:52:20 +00:00
meta-wayland-touch.h wayland: Simplify wl_touch.frame handling 2020-10-23 18:48:18 +00:00
meta-wayland-types.h wayland: Implement the xdg-activation protocol 2021-07-09 09:34:28 +00:00
meta-wayland-versions.h wayland/gtk-shell: Add titlebar_gesture request 2021-08-04 14:41:43 +00:00
meta-wayland-viewporter.c wayland/surface: Rename MetaWaylandPendingState to MetaWaylandSurfaceState 2019-12-09 10:09:40 +01:00
meta-wayland-viewporter.h wayland/surface: Add support for wp_viewporter 2019-02-06 12:24:03 +00:00
meta-wayland-window-configuration.c Revert "wayland/window: Correct detection whether to send configure" 2021-04-14 06:36:09 +00:00
meta-wayland-window-configuration.h wayland: Only use async configured geometry if actually changed 2021-01-30 09:49:13 +00:00
meta-wayland-wl-shell.c wayland: Apply states without needing a newly attached buffer 2021-07-06 09:11:10 +00:00
meta-wayland-wl-shell.h wayland: Restructure surface role building blocks code 2018-02-23 18:57:40 +08:00
meta-wayland-xdg-foreign.c wayland: Don't access MetaWaylandSurface::window directly 2020-02-19 22:34:28 +00:00
meta-wayland-xdg-foreign.h wayland: Add support for the xdg-foreign protocol 2016-08-22 21:03:41 +08:00
meta-wayland-xdg-shell.c wayland: Fetch wl_output logical monitor via helper 2021-08-22 16:40:42 +00:00
meta-wayland-xdg-shell.h wayland: Add support for stable xdg-shell 2018-02-23 18:57:53 +08:00
meta-wayland.c wayland/output: Make each wl_output correspond to one monitor 2021-08-22 16:40:42 +00:00
meta-wayland.h wayland: Initialize in a single step 2021-07-15 11:34:37 +02:00
meta-window-wayland.c window/wayland: Replace constraint side effect peeking with state checks 2021-07-05 10:27:58 +00:00
meta-window-wayland.h Revert "wayland/window: Correct detection whether to send configure" 2021-04-14 06:36:09 +00:00
meta-window-xwayland.c backends: Shuffle ClutterBackendX11 code into MetaClutterBackendX11 2021-07-16 19:08:06 +02:00
meta-window-xwayland.h xwayland: Add MetaWindowXwayland 2017-12-18 13:15:09 +01:00
meta-xwayland-dnd-private.h wayland: Reduce MetaXWaylandSelection to just DnD 2019-05-02 16:31:45 +02:00
meta-xwayland-dnd.c xwayland: Don't fetch global when shutting down DND 2021-05-18 14:03:22 +00:00
meta-xwayland-grab-keyboard.c xwayland-grab-keyboard: Switch to g_pattern_spec_match_string() 2021-08-12 13:11:31 +00:00
meta-xwayland-grab-keyboard.h Clean up include macros mess 2018-11-06 17:17:36 +01:00
meta-xwayland-private.h xwayland: Pass MetaWaylandCompositor pointer when initializing 2021-05-18 14:03:22 +00:00
meta-xwayland-surface.c compositor: Trigger repick after window effects here 2020-12-23 12:54:49 +01:00
meta-xwayland-surface.h xwayland: Move out surface role related logic 2020-02-19 22:34:28 +00:00
meta-xwayland.c xwayland: Initialize g_autofree with NULL 2021-09-04 20:00:23 +00:00
meta-xwayland.h meta: Hide libmutter symbols by default and selectively export them 2019-01-23 14:18:13 +01:00