Title: [243862] trunk/Source/WebKit
Revision
243862
Author
[email protected]
Date
2019-04-03 22:51:37 -0700 (Wed, 03 Apr 2019)

Log Message

[ATK] Set ATK_STATE_TRANSIENT on the atk socket until it's embedded
https://bugs.webkit.org/show_bug.cgi?id=196535

Reviewed by Michael Catanzaro.

This way the properties are not cached. Right now, if number of children is queried before the socket is
embedded, 0 is returned and cached, so ATs don't see the child even after the socket has been embedded.

* UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp:
(webkitWebViewBaseAccessibleRefStateSet): Set ATK_STATE_TRANSIENT is the socket is not occupied.
* UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::bindAccessibilityTree): Unset ATK_STATE_TRANSIENT.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (243861 => 243862)


--- trunk/Source/WebKit/ChangeLog	2019-04-04 05:50:22 UTC (rev 243861)
+++ trunk/Source/WebKit/ChangeLog	2019-04-04 05:51:37 UTC (rev 243862)
@@ -1,5 +1,20 @@
 2019-04-03  Carlos Garcia Campos  <[email protected]>
 
+        [ATK] Set ATK_STATE_TRANSIENT on the atk socket until it's embedded
+        https://bugs.webkit.org/show_bug.cgi?id=196535
+
+        Reviewed by Michael Catanzaro.
+
+        This way the properties are not cached. Right now, if number of children is queried before the socket is
+        embedded, 0 is returned and cached, so ATs don't see the child even after the socket has been embedded.
+
+        * UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp:
+        (webkitWebViewBaseAccessibleRefStateSet): Set ATK_STATE_TRANSIENT is the socket is not occupied.
+        * UIProcess/gtk/WebPageProxyGtk.cpp:
+        (WebKit::WebPageProxy::bindAccessibilityTree): Unset ATK_STATE_TRANSIENT.
+
+2019-04-03  Carlos Garcia Campos  <[email protected]>
+
         [ATK] Embed the AtkSocket as soon as we receive the plug ID
         https://bugs.webkit.org/show_bug.cgi?id=196534
 

Modified: trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp (243861 => 243862)


--- trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp	2019-04-04 05:50:22 UTC (rev 243861)
+++ trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp	2019-04-04 05:51:37 UTC (rev 243862)
@@ -59,6 +59,8 @@
     if (accessible->priv->widget) {
         // Use the implementation of AtkSocket if the widget is still alive.
         stateSet = ATK_OBJECT_CLASS(webkit_web_view_base_accessible_parent_class)->ref_state_set(atkObject);
+        if (!atk_socket_is_occupied(ATK_SOCKET(atkObject)))
+            atk_state_set_add_state(stateSet, ATK_STATE_TRANSIENT);
     } else {
         // If the widget is no longer alive, save some remote calls
         // (because of AtkSocket's implementation of ref_state_set())

Modified: trunk/Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp (243861 => 243862)


--- trunk/Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp	2019-04-04 05:50:22 UTC (rev 243861)
+++ trunk/Source/WebKit/UIProcess/gtk/WebPageProxyGtk.cpp	2019-04-04 05:51:37 UTC (rev 243862)
@@ -59,6 +59,7 @@
 {
     auto* accessible = gtk_widget_get_accessible(viewWidget());
     atk_socket_embed(ATK_SOCKET(accessible), const_cast<char*>(plugID.utf8().data()));
+    atk_object_notify_state_change(accessible, ATK_STATE_TRANSIENT, FALSE);
 }
 
 void WebPageProxy::saveRecentSearches(const String&, const Vector<WebCore::RecentSearch>&)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to