diff --git a/data/dbus-interfaces/org.gnome.Mutter.DebugControl.xml b/data/dbus-interfaces/org.gnome.Mutter.DebugControl.xml
index 34190744d..372e7be26 100644
--- a/data/dbus-interfaces/org.gnome.Mutter.DebugControl.xml
+++ b/data/dbus-interfaces/org.gnome.Mutter.DebugControl.xml
@@ -12,7 +12,7 @@
-
+
diff --git a/src/backends/meta-a11y-manager.c b/src/backends/meta-a11y-manager.c
index c51e2f712..c30f7c391 100644
--- a/src/backends/meta-a11y-manager.c
+++ b/src/backends/meta-a11y-manager.c
@@ -22,6 +22,7 @@
#include "backends/meta-a11y-manager.h"
#include "backends/meta-dbus-access-checker.h"
+#include "core/meta-debug-control-private.h"
#include "meta/meta-backend.h"
#include "meta/meta-context.h"
#include "meta/util.h"
@@ -191,8 +192,15 @@ check_access (GDBusInterfaceSkeleton *skeleton,
gpointer user_data)
{
MetaA11yManager *a11y_manager = META_A11Y_MANAGER (user_data);
+ MetaContext *context =
+ meta_backend_get_context (a11y_manager->backend);
const char *sender =
g_dbus_method_invocation_get_sender (invocation);
+ MetaDebugControl *debug_control =
+ meta_context_get_debug_control (context);
+
+ if (meta_debug_control_is_a11y_manager_without_access_control (debug_control))
+ return TRUE;
if (!meta_dbus_access_checker_is_sender_allowed (a11y_manager->access_checker,
sender))
diff --git a/src/core/meta-debug-control-private.h b/src/core/meta-debug-control-private.h
index b4e7efe75..893074c40 100644
--- a/src/core/meta-debug-control-private.h
+++ b/src/core/meta-debug-control-private.h
@@ -33,3 +33,5 @@ gboolean meta_debug_control_is_session_management_protocol_enabled (MetaDebugCon
gboolean meta_debug_control_is_hw_cursor_inhibited (MetaDebugControl *debug_control);
gboolean meta_debug_control_is_cursor_shape_protocol_enabled (MetaDebugControl *debug_control);
+
+gboolean meta_debug_control_is_a11y_manager_without_access_control (MetaDebugControl *debug_control);
diff --git a/src/core/meta-debug-control.c b/src/core/meta-debug-control.c
index e2b92baa8..cd6b2b2e5 100644
--- a/src/core/meta-debug-control.c
+++ b/src/core/meta-debug-control.c
@@ -173,6 +173,7 @@ meta_debug_control_init (MetaDebugControl *debug_control)
gboolean session_management_protocol;
gboolean cursor_shape_protocol;
gboolean inhibit_hw_cursor;
+ gboolean a11y_manager_without_access_control;
color_management_protocol =
g_strcmp0 (getenv ("MUTTER_DEBUG_COLOR_MANAGEMENT_PROTOCOL"), "1") == 0;
@@ -203,6 +204,11 @@ meta_debug_control_init (MetaDebugControl *debug_control)
g_strcmp0 (getenv ("MUTTER_DEBUG_CURSOR_SHAPE_PROTOCOL"), "1") == 0;
meta_dbus_debug_control_set_cursor_shape_protocol (dbus_debug_control,
cursor_shape_protocol);
+
+ a11y_manager_without_access_control =
+ g_strcmp0 (getenv ("MUTTER_DEBUG_A11Y_MANAGER_WITHOUT_ACCESS_CONTROL"), "1") == 0;
+ meta_dbus_debug_control_set_a11y_manager_without_access_control (dbus_debug_control,
+ a11y_manager_without_access_control);
}
gboolean
@@ -295,3 +301,12 @@ meta_debug_control_is_cursor_shape_protocol_enabled (MetaDebugControl *debug_con
return meta_dbus_debug_control_get_cursor_shape_protocol (dbus_debug_control);
}
+
+gboolean
+meta_debug_control_is_a11y_manager_without_access_control (MetaDebugControl *debug_control)
+{
+ MetaDBusDebugControl *dbus_debug_control =
+ META_DBUS_DEBUG_CONTROL (debug_control);
+
+ return meta_dbus_debug_control_get_a11y_manager_without_access_control (dbus_debug_control);
+}