elm_atspi_bridge: Standardize Socket interface 36/315136/2 tizen
authorArtur Świgoń <a.swigon@samsung.com>
Thu, 4 Jul 2024 16:08:44 +0000 (18:08 +0200)
committerLukasz Oleksak <l.oleksak@samsung.com>
Fri, 26 Jul 2024 13:10:17 +0000 (13:10 +0000)
This unifies the mechanism with DALi.

Change-Id: I17d89084bb8ad7c2a756ba65ca05a3446b1148e3

src/lib/elementary/efl_access_object.c
src/lib/elementary/efl_ui_win_socket.c
src/lib/elementary/elm_atspi_app_object.c
src/lib/elementary/elm_atspi_bridge.c
src/lib/elementary/elm_priv.h

index b95cffa..e66b3d5 100644 (file)
@@ -221,7 +221,7 @@ _efl_access_object_access_parent_get(const Eo *obj EINA_UNUSED, Efl_Access_Objec
 }
 
 EOLIAN static void
-_efl_access_object_access_parent_set(Eo *obj EINA_UNUSED, Efl_Access_Object_Data *pd EINA_UNUSED, Eo *parent)
+_efl_access_object_access_parent_set(Eo *obj EINA_UNUSED, Efl_Access_Object_Data *pd, Eo *parent)
 {
   pd->parent = parent;
 }
@@ -560,8 +560,9 @@ _efl_access_object_access_children_get(const Eo *obj, Efl_Access_Object_Data *pd
         if (efl_isa(chld, EFL_ACCESS_OBJECT_MIXIN))
           {
             children = eina_list_append(children, chld);
-            //TIZEN_ONLY(20181024): Fix parent-children incosistencies in atspi tree
-            efl_access_object_access_parent_set(chld, (Eo *)obj);
+            //TIZEN_ONLY(20240719): Standardize Socket interface
+            if (!elm_atspi_bridge_utils_is_socket(chld))
+              efl_access_object_access_parent_set(chld, (Eo *)obj);
             //
           }
      }
@@ -643,6 +644,14 @@ _efl_access_object_event_emit(Eo *accessible, const Efl_Event_Description *event
         return;
      }
 
+   //TIZEN_ONLY(20240719): Standardize Socket interface
+   if (elm_atspi_bridge_utils_is_socket(accessible))
+     {
+        ERR("Emission suppressed for socket object %lu", (unsigned long)accessible);
+        return;
+     }
+   //
+
    Efl_Event ev;
    ev.object = accessible;
    ev.desc = event;
index 1ec89ab..5df9802 100644 (file)
@@ -69,15 +69,6 @@ _win_socket_proxy_create_and_listen(Eo *obj, Efl_Ui_Win_Socket_Data *sd)
    sd->socket_proxy = _elm_atspi_bridge_utils_proxy_create(obj, sd->svcname, sd->svcnum, ELM_ATSPI_PROXY_TYPE_SOCKET);
    evas_object_data_set(obj, "___atspi_socket_proxy", sd->socket_proxy);
 
-   /* elm_plug: socket window is a11y child of proxy(of socket window)
-      so the proxy should be a11y parent of the socket window.
-      finding a11y parents happens in atspi_accessible_get_neighbor
-      it will find proxy, and doing "GetNeighbor" with the search mode
-      NEIGHBOR_SEARCH_MODE_CONTIUNE_AFTER_FAILED_RECURSING */
-   Eo *p = efl_access_object_access_parent_get(obj);
-   efl_access_object_access_parent_set(obj, sd->socket_proxy);
-   efl_access_object_access_parent_set(sd->socket_proxy, p);
-
    if (!elm_atspi_bridge_utils_proxy_listen(sd->socket_proxy))
      {
         if (_atspi_bridge_ready_handler) ecore_event_handler_del(_atspi_bridge_ready_handler);
@@ -168,6 +159,9 @@ _access_socket_proxy_del(Eo * obj)
         efl_del(sd->socket_proxy);
         sd->socket_proxy = NULL;
         evas_object_data_set(obj, "___atspi_socket_proxy", NULL);
+        //TIZEN_ONLY(20240719): Standardize Socket interface
+        elm_atspi_bridge_utils_set_socket(NULL);
+        //
         if (_atspi_bridge_ready_handler)
           {
              ecore_event_handler_del(_atspi_bridge_ready_handler);
index 3e72509..bf1e52e 100644 (file)
@@ -45,8 +45,9 @@ _elm_atspi_app_object_efl_access_object_access_children_get(const Eo *obj EINA_U
           {
         //
             accs = eina_list_append(accs, win);
-            //TIZEN_ONLY(20181024): Fix parent-children incosistencies in atspi tree
-            efl_access_object_access_parent_set(win, (Eo *)obj);
+            //TIZEN_ONLY(20240719): Standardize Socket interface
+            if (!elm_atspi_bridge_utils_is_socket(win))
+              efl_access_object_access_parent_set(win, (Eo *)obj);
             //
           }
      }
index d6a0ce2..01be813 100644 (file)
@@ -125,6 +125,9 @@ typedef struct _Elm_Atspi_Bridge_Data
    Eo *root;
    Eina_List *socket_queue;
    Eina_List *plug_queue;
+   //TIZEN_ONLY(20240719): Standardize Socket interface
+   Eo *current_socket; // Maybe use Eina_List for multi-widget support
+   //
    // TIZEN_ONLY(20171109) : fix for invalid proxy object, when at-spi has been restarted
    Eina_List *connected_plugs_sockets;
    //
@@ -201,6 +204,9 @@ static const char * _path_from_object(const Eo *eo);
 static void _bridge_signal_send(Eo *bridge, Eo *obj, const char *ifc, const Eldbus_Signal *signal, const char *minor, unsigned int det1, unsigned int det2, const char *variant_sig, ...);
 static Eo * _bridge_object_from_path(Eo *bridge, const char *path);
 static void _bridge_iter_object_reference_append(Eo *bridge, Eldbus_Message_Iter *iter, const Eo *obj);
+//TIZEN_ONLY(20240719): Standardize Socket interface
+static Eina_Bool _bridge_iter_object_address_get(Eo *bridge, Eldbus_Message_Iter *iter, const char **bus, const char **path);
+//
 static void _object_get_bus_name_and_path(Eo *bridge, const Eo *obj, const char **bus_name, const char **path);
 // TIZEN_ONLY(20170310) - implementation of get object under coordinates for accessibility
 static Eo *_calculate_navigable_accessible_at_point(Eo *bridge, Eo *root, Eina_Bool coord_type, int x, int y);
@@ -3311,43 +3317,94 @@ _elm_atspi_bridge_plug_id_split(const char *plug_id, char **bus, char **path)
 
    return EINA_TRUE;
 }
+//
+
+//TIZEN_ONLY(20240719): Standardize Socket interface
+Eina_Bool
+elm_atspi_bridge_utils_is_socket(Eo *obj)
+{
+   Eo *bridge = _elm_atspi_bridge_get();
+   if (!bridge)
+     return EINA_FALSE;
+   ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN_VAL(bridge, pd, EINA_FALSE);
+
+   return obj == pd->current_socket;
+}
+
+Eo *
+elm_atspi_bridge_utils_get_socket(void)
+{
+   Eo *bridge = _elm_atspi_bridge_get();
+   if (!bridge)
+     return NULL;
+   ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN_VAL(bridge, pd, NULL);
+
+   return pd->current_socket;
+}
+
+void
+elm_atspi_bridge_utils_set_socket(Eo *obj)
+{
+   Eo *bridge = _elm_atspi_bridge_get();
+   if (!bridge)
+     return;
+   ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(bridge, pd);
 
+   pd->current_socket = obj;
+}
+//
+
+//TIZEN_ONLY(20240705): Standardize Socket interface
 static Eldbus_Message *
-_socket_embedded(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+_socket_embed(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
 {
-   // TIZEN_ONLY(20160705) - enable atspi_proxy to work
    const char *obj_path = eldbus_message_path_get(msg);
-   //
-   const char *path;
+   Eo *bridge = _elm_atspi_bridge_get();
+   const char *bus = NULL;
+   const char *path = NULL;
 
-   if (!eldbus_message_arguments_get(msg, "s", &path))
+   if (!_bridge_iter_object_address_get(bridge, eldbus_message_iter_get(msg), &bus, &path))
      return eldbus_message_error_new(msg, "org.freedesktop.DBus.Error.InvalidArgs", "Plug id expected.");
 
-   Eo *bridge = _elm_atspi_bridge_get();
    Eo *obj = _bridge_object_from_path(bridge, obj_path);
-   Eo *proxy = evas_object_data_get(obj, "___atspi_socket_proxy");
+   Eo *root = efl_access_object_access_root_get();
+
+   if (obj != root)
+   {
+      ERR("error: Embed must be called on root object");
+      return eldbus_message_error_new(msg, "org.freedesktop.DBus.Error.InvalidArgs", "Embed must be called on root object");
+   }
 
+   Eo *socket = elm_atspi_bridge_utils_get_socket();
+   if (!socket)
+     return eldbus_message_error_new(msg, "org.freedesktop.DBus.Error.Failed", "Unable to embed object: socket is not set");
+
+   Eo *proxy = evas_object_data_get(socket, "___atspi_socket_proxy");
    if (!efl_isa(proxy, ELM_ATSPI_PROXY_CLASS))
-     return eldbus_message_error_new(msg, "org.freedesktop.DBus.Error.Failed", "Unable to embed object.");
+     return eldbus_message_error_new(msg, "org.freedesktop.DBus.Error.Failed", "Unable to embed object: proxy is not set");
 
-   const char *bus = eldbus_message_sender_get(msg);
    elm_obj_atspi_proxy_address_set(proxy, bus, path);
+   efl_access_object_access_parent_set(socket, proxy);
+   efl_access_object_access_parent_set(proxy, root);
 
    _bridge_cache_build(bridge, proxy);
 
-   return eldbus_message_method_return_new(msg);
+   Eldbus_Message *reply = eldbus_message_method_return_new(msg);
+   _bridge_iter_object_reference_append(bridge, eldbus_message_iter_get(reply), socket);
+
+   return reply;
 }
 //
 
-// TIZEN_ONLY(20160705) - enable atspi_proxy to work
+//TIZEN_ONLY(20240719): Standardize Socket interface
 static Eldbus_Message *
 _socket_offset_set(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
 {
    int x, y;
-   Eo *parent;
-   Eo *obj = eldbus_service_object_data_get(iface, "_atspi_obj");
-   parent = efl_parent_get(obj);
-   Evas_Object *top = elm_object_top_widget_get(parent);
+   const char *obj_path = eldbus_message_path_get(msg);
+   Eo *bridge = _elm_atspi_bridge_get();
+   Eo *obj = _bridge_object_from_path(bridge, obj_path);
+   Evas_Object *top = elm_object_top_widget_get(obj);
 
    if (!eldbus_message_arguments_get(msg, "ii", &x, &y))
      return eldbus_message_error_new(msg, "org.freedesktop.DBus.Error.InvalidArgs", "Invalid index type.");
@@ -3370,7 +3427,9 @@ static const Eldbus_Method editable_text_methods[] = {
 
 //TIZEN_ONLY(20171108): make atspi_proxy work
 static const Eldbus_Method socket_methods[] = {
-   { "Embedded", ELDBUS_ARGS({"s", "id"}), ELDBUS_ARGS({NULL, NULL}), _socket_embedded, 0 },
+   //TIZEN_ONLY(20240719): Standardize Socket interface
+   { "Embed", ELDBUS_ARGS({"(so)", "address"}), ELDBUS_ARGS({"(so)", "address"}), _socket_embed, 0 },
+   //
    // TIZEN_ONLY(20160705) - enable atspi_proxy to work
    { "SetOffset", ELDBUS_ARGS({"i", "x"}, {"i", "y"}), ELDBUS_ARGS({NULL, NULL}), _socket_offset_set, 0 },
    //
@@ -4611,6 +4670,21 @@ _bridge_iter_object_reference_append(Eo *bridge, Eldbus_Message_Iter *iter, cons
    eldbus_message_iter_container_close(iter, iter_struct);
 }
 
+//TIZEN_ONLY(20240719): Standardize Socket interface
+static Eina_Bool
+_bridge_iter_object_address_get(Eo *bridge EINA_UNUSED, Eldbus_Message_Iter *iter, const char **bus, const char **path)
+{
+   EINA_SAFETY_ON_FALSE_RETURN_VAL(iter && bus && path, EINA_FALSE);
+
+   Eldbus_Message_Iter *iter_struct;
+   Eina_Bool success = eldbus_message_iter_arguments_get(iter, "(so)", &iter_struct);
+   if (success) success = eldbus_message_iter_arguments_get(iter_struct, "so", bus, path);
+   else *bus = *path = NULL;
+
+   return success;
+}
+//
+
 static void
 _object_desktop_reference_append(Eldbus_Message_Iter *iter)
 {
@@ -5270,8 +5344,13 @@ _directional_depth_first_search_try_non_defunct_sibling(accessibility_navigation
 
        // walk up...
        node = CALL(get_parent, node);
+
        if (node == NULL || node == root) return NULL;
 
+       //TIZEN_ONLY(20240719): Standardize Socket interface
+       if (CALL(object_is_proxy, node)) break;
+       //
+
        // in backward traversing stop the walk up on parent
        if (!forward) break;
      }
@@ -7650,16 +7729,34 @@ static void _embedded_reply_cb(void *data, const Eldbus_Message *msg, Eldbus_Pen
 
    if (eldbus_message_error_get(msg, &err, &txt))
      {
-        ERR("AT-SPI: Embedded method call failed: %s %s", err, txt);
+        ERR("AT-SPI: Embed method call failed: %s %s", err, txt);
+        efl_event_callback_call(proxy, ELM_ATSPI_PROXY_EVENT_DISCONNECTED, NULL);
+
+        //TIZEN_ONLY(20240719): Standardize Socket interface
+        elm_obj_atspi_proxy_address_get_retry_timer_add(proxy);
+        //
+        return;
+     }
+
+   //TIZEN_ONLY(20240719): Standardize Socket interface
+   const char *bus;
+   const char *path;
+   Eo *bridge = _elm_atspi_bridge_get();
+   if (!_bridge_iter_object_address_get(bridge, eldbus_message_iter_get(msg), &bus, &path))
+     {
+        ERR("AT-SPI: Embed did not return a valid address");
         efl_event_callback_call(proxy, ELM_ATSPI_PROXY_EVENT_DISCONNECTED, NULL);
         return;
      }
+
+   elm_obj_atspi_proxy_address_set(proxy, bus, path);
+   //
+
    efl_event_callback_call(proxy, ELM_ATSPI_PROXY_EVENT_CONNECTED, NULL);
 
    parent = efl_parent_get(proxy);
    if (parent)
    {
-      const char *bus = eldbus_message_sender_get(msg);
       efl_access_object_attribute_append(parent, "child_bus", bus);
       efl_access_children_changed_added_signal_emit(parent, proxy);
    }
@@ -7668,25 +7765,17 @@ static void _embedded_reply_cb(void *data, const Eldbus_Message *msg, Eldbus_Pen
 static void
 _plug_embedded_send(Eldbus_Connection *conn, Eo *proxy, const char *bus, const char *path)
 {
-   char *obj_path = NULL;
    Eo *parent;
    Eldbus_Message *msg = NULL;
 
    parent = efl_parent_get(proxy);
    if (!parent) goto fail;
 
-   msg = eldbus_message_method_call_new(bus, path, ATSPI_DBUS_INTERFACE_SOCKET, "Embedded");
+   //TIZEN_ONLY(20240719): Standardize Socket interface
+   msg = eldbus_message_method_call_new(bus, path, ATSPI_DBUS_INTERFACE_SOCKET, "Embed");
    if (!msg) goto fail;
 
-   if (!elm_atspi_bridge_object_address_get(parent, NULL, &obj_path))
-     goto fail;
-
-   if (!eldbus_message_arguments_append(msg, "s", obj_path))
-     goto fail;
-
-   //TIZEN_ONLY(20171114) elm_atspi_bridge: fix double free issue (WGID:81393)
-   // free(obj_path);
-   ELM_SAFE_FREE(obj_path, free);
+   _bridge_iter_object_reference_append(_elm_atspi_bridge_get(), eldbus_message_iter_get(msg), parent);
    //
 
    if (!eldbus_connection_send(conn, msg, _embedded_reply_cb, proxy, 100))
@@ -7697,86 +7786,7 @@ _plug_embedded_send(Eldbus_Connection *conn, Eo *proxy, const char *bus, const c
 fail:
    ERR("AT-SPI: Unable to send Embedded request.");
    if (msg) eldbus_message_unref(msg);
-   //TIZEN_ONLY(20171114) elm_atspi_bridge: fix double free issue (WGID:81393)
-   // free(obj_path);
-   ELM_SAFE_FREE(obj_path, free);
-   //
-   efl_event_callback_call(proxy, ELM_ATSPI_PROXY_EVENT_DISCONNECTED, NULL);
-}
-
-static void _socket_addr_get_cb(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending EINA_UNUSED)
-{
-   Eo *proxy = data;
-   const char *bus, *path, *err, *txt;
-   Eldbus_Message_Iter *iter, *iter_variant, *iter_struct;
-
-   //TIZEN_ONLY(20171114) elm_atspi_bridge: ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN should use elm_atspi_bridge object
-   // ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(proxy, pd);
-   Eo *bridge = _elm_atspi_bridge_get();
-   if (!bridge)
-     {
-        ERR("AT-SPI: Atspi bridge is not enabled.");
-        return;
-     }
-   ELM_ATSPI_BRIDGE_DATA_GET_OR_RETURN(bridge, pd);
-   //
-
-   if (eldbus_message_error_get(msg, &err, &txt))
-     {
-        ERR("Unable to connect to socket: %s %s", err, txt);
-        goto retry;
-     }
-
-   iter = eldbus_message_iter_get(msg);
-   if (!eldbus_message_iter_arguments_get(iter, "v", &iter_variant))
-     {
-        ERR("Unable to get variant parameter");
-        goto fail;
-     }
-
-   if (!eldbus_message_iter_arguments_get(iter_variant, "(so)", &iter_struct))
-     {
-        ERR("Unable to get so parameters");
-        goto fail;
-     }
-
-   if (!eldbus_message_iter_arguments_get(iter_struct, "so", &bus, &path))
-     {
-        ERR("Unable to get so parameters");
-        goto fail;
-     }
-
-   elm_obj_atspi_proxy_address_set(proxy, bus, path);
-
-   _plug_embedded_send(pd->a11y_bus, proxy, bus, path);
-
-   return;
-
-fail:
    efl_event_callback_call(proxy, ELM_ATSPI_PROXY_EVENT_DISCONNECTED, NULL);
-   return;
-
-retry:
-   elm_obj_atspi_proxy_address_get_retry_timer_add(proxy);
-}
-
-static void
-_plug_address_discover(Eldbus_Connection *conn, Eo *proxy, const char *svc_bus, const char *svc_path)
-{
-   Eldbus_Object *dobj;
-   dobj = eldbus_object_get(conn, svc_bus, svc_path);
-
-   //TIZEN_ONLY(20171114) atspi: sanitize service name before creating bus
-   if (!dobj)
-     {
-       ERR("Unable to get eldbus object from: %s %s", svc_bus, svc_path);
-       return;
-     }
-   //
-
-   Eldbus_Message *msg = eldbus_object_method_call_new(dobj, ELDBUS_FDO_INTERFACE_PROPERTIES, "Get");
-   eldbus_message_arguments_append(msg, "ss", ELM_ATSPI_DBUS_INTERFACE_PROXY, "Object");
-   eldbus_object_send(dobj, msg, _socket_addr_get_cb, proxy, 100);
 }
 
 static void _add_plug_or_socket_to_connected_list_in_bridge(Eo *plug_or_socket)
@@ -7796,12 +7806,9 @@ static void _plug_connect(Eldbus_Connection *conn, Eo *proxy)
 
    _add_plug_or_socket_to_connected_list_in_bridge(proxy);
 
-   if (bus && path)
-     {
-        _plug_address_discover(conn, proxy, bus, path);
-        return;
-     }
-   else
+   //TIZEN_ONLY(20240719): Standardize Socket interface
+   if (!bus || !path)
+   //
      {
         elm_obj_atspi_proxy_address_get(proxy, &bus, &path);
         if (!bus || !path)
@@ -7810,8 +7817,9 @@ static void _plug_connect(Eldbus_Connection *conn, Eo *proxy)
              efl_event_callback_call(proxy, ELM_ATSPI_PROXY_EVENT_DISCONNECTED, NULL);
              return;
           }
-        _plug_embedded_send(conn, proxy, bus, path);
      }
+   _plug_embedded_send(conn, proxy, bus, path);
+
    return;
 }
 
@@ -7908,7 +7916,7 @@ Eo* _elm_atspi_bridge_utils_proxy_create(Eo *parent, const char *svcname, int sv
 {
    Eo *ret;
 
-   char bus[256], path[256];
+   char bus[256];
    int res;
 
    char *svc_sanitized = _sanitize_service_name(svcname);
@@ -7925,14 +7933,6 @@ Eo* _elm_atspi_bridge_utils_proxy_create(Eo *parent, const char *svcname, int sv
          return NULL;
      }
 
-   res = snprintf(path, sizeof(path), "/elm/atspi/proxy/socket/%s/%d", svc_sanitized, svcnum);
-   if (res < 0 || (res >= (int)sizeof(path)))
-     {
-         ERR("Error occured during creating bus name");
-         free(svc_sanitized);
-         return NULL;
-     }
-
    ret = efl_add(ELM_ATSPI_PROXY_CLASS, parent, elm_obj_atspi_proxy_ctor(efl_added, type));
 
    if (!ret)
@@ -7942,12 +7942,10 @@ Eo* _elm_atspi_bridge_utils_proxy_create(Eo *parent, const char *svcname, int sv
    }
 
    char *bus_sanitized = _sanitize_bus_name(bus);
-   char *path_sanitized = _sanitize_path_name(path);
-   if(!bus_sanitized || !path_sanitized)
+   if(!bus_sanitized)
    {
       free(svc_sanitized);
       free(bus_sanitized);
-      free(path_sanitized);
       efl_del(ret);
       return NULL;
    }
@@ -7962,11 +7960,17 @@ Eo* _elm_atspi_bridge_utils_proxy_create(Eo *parent, const char *svcname, int sv
    }
 
    efl_key_data_set(ret, "__svc_bus", eina_stringshare_add(bus_sanitized));
-   efl_key_data_set(ret, "__svc_path", eina_stringshare_add(path_sanitized));
+   //TIZEN_ONLY(20240719): Standardize Socket interface
+   efl_key_data_set(ret, "__svc_path", ATSPI_DBUS_PATH_ROOT);
+   //
 
    free(svc_sanitized);
    free(bus_sanitized);
-   free(path_sanitized);
+
+   //TIZEN_ONLY(20240719): Standardize Socket interface
+   if (type == ELM_ATSPI_PROXY_TYPE_SOCKET)
+     elm_atspi_bridge_utils_set_socket(parent);
+   //
 
    return ret;
 }
@@ -8077,12 +8081,10 @@ void elm_atspi_bridge_utils_proxy_offset_set(Eo *proxy, int x, int y)
 
    if (!pd->a11y_bus) return;
 
-   bus = efl_key_data_get(proxy, "__svc_bus");
-   path = efl_key_data_get(proxy, "__svc_path");
-
-   Eldbus_Message *msg = NULL;
-
-   msg = eldbus_message_method_call_new(bus, path, ELM_ATSPI_DBUS_INTERFACE_PROXY, "SetOffset");
+   //TIZEN_ONLY(20240719): Standardize Socket interface
+   elm_obj_atspi_proxy_address_get(proxy, &bus, &path);
+   Eldbus_Message *msg = eldbus_message_method_call_new(bus, path, ATSPI_DBUS_INTERFACE_SOCKET, "SetOffset");
+   //
    if (!msg) goto fail;
 
    if (!eldbus_message_arguments_append(msg, "i", x))
index 6684b6e..13b5279 100644 (file)
@@ -896,6 +896,7 @@ void                *_elm_icon_signal_callback_del(Evas_Object *obj,
                                                    const char *emission,
                                                    const char *source,
                                                    Edje_Signal_Cb func_cb);
+/* end of DEPRECATED */
 //TIZEN_ONLY(20171108): make atspi_proxy work
 Eo*                  _elm_atspi_bridge_utils_proxy_create(Eo *parent, const char *svcname, int svcnum, Elm_Atspi_Proxy_Type type);
 Eina_Bool            elm_atspi_bridge_utils_proxy_listen(Eo *proxy);
@@ -908,7 +909,11 @@ Eina_Bool            _elm_atspi_bridge_plug_id_split(const char *plug_id, char *
 void                 _access_socket_proxy_listen(Eo * obj);
 void                 _access_socket_proxy_del(Eo * obj);
 //
-/* end of DEPRECATED */
+//TIZEN_ONLY(20240719): Standardize Socket interface
+Eina_Bool            elm_atspi_bridge_utils_is_socket(Eo *obj);
+Eo *                 elm_atspi_bridge_utils_get_socket(void);
+void                 elm_atspi_bridge_utils_set_socket(Eo *obj);
+//
 
 /* DO NOT USE THIS this is only for performance optimization! */
 void                 _elm_widget_full_eval(Eo *obj);