Title: [288731] trunk
Revision
288731
Author
[email protected]
Date
2022-01-27 23:05:55 -0800 (Thu, 27 Jan 2022)

Log Message

[WPE][a11y] Add option to build with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235701

Reviewed by Adrian Perez de Castro.

.:

* Source/cmake/OptionsWPE.cmake:

Source/WebCore:

* PlatformWPE.cmake:
* SourcesWPE.txt:

Source/WebKit:

* UIProcess/wpe/WebPageProxyWPE.cpp:
(WebKit::WebPageProxy::bindAccessibilityTree):
* WebProcess/WebPage/wpe/WebPageWPE.cpp:
(WebKit::WebPage::platformInitialize):
(WebKit::WebPage::platformDetach):
* WebProcess/wpe/WebProcessMainWPE.cpp:

Tools:

* WebKitTestRunner/PlatformWPE.cmake:

Modified Paths

Diff

Modified: trunk/ChangeLog (288730 => 288731)


--- trunk/ChangeLog	2022-01-28 07:04:12 UTC (rev 288730)
+++ trunk/ChangeLog	2022-01-28 07:05:55 UTC (rev 288731)
@@ -1,3 +1,12 @@
+2022-01-27  Carlos Garcia Campos  <[email protected]>
+
+        [WPE][a11y] Add option to build with ATSPI
+        https://bugs.webkit.org/show_bug.cgi?id=235701
+
+        Reviewed by Adrian Perez de Castro.
+
+        * Source/cmake/OptionsWPE.cmake:
+
 2022-01-27  Adrian Perez de Castro  <[email protected]>
 
         [CMake] Do not require GNU Gold usage to enable DEBUG_FISSION

Modified: trunk/Source/WebCore/ChangeLog (288730 => 288731)


--- trunk/Source/WebCore/ChangeLog	2022-01-28 07:04:12 UTC (rev 288730)
+++ trunk/Source/WebCore/ChangeLog	2022-01-28 07:05:55 UTC (rev 288731)
@@ -1,5 +1,15 @@
 2022-01-27  Carlos Garcia Campos  <[email protected]>
 
+        [WPE][a11y] Add option to build with ATSPI
+        https://bugs.webkit.org/show_bug.cgi?id=235701
+
+        Reviewed by Adrian Perez de Castro.
+
+        * PlatformWPE.cmake:
+        * SourcesWPE.txt:
+
+2022-01-27  Carlos Garcia Campos  <[email protected]>
+
         [GTK][a11y] Do not set the accessibility root object on svg image page elements with ATSPI
         https://bugs.webkit.org/show_bug.cgi?id=235705
 

Modified: trunk/Source/WebCore/PlatformWPE.cmake (288730 => 288731)


--- trunk/Source/WebCore/PlatformWPE.cmake	2022-01-28 07:04:12 UTC (rev 288730)
+++ trunk/Source/WebCore/PlatformWPE.cmake	2022-01-28 07:05:55 UTC (rev 288731)
@@ -18,6 +18,7 @@
 
 list(APPEND WebCore_PRIVATE_INCLUDE_DIRECTORIES
     "${WEBCORE_DIR}/accessibility/atk"
+    "${WEBCORE_DIR}/accessibility/atspi"
     "${WEBCORE_DIR}/platform/adwaita"
     "${WEBCORE_DIR}/platform/audio/glib"
     "${WEBCORE_DIR}/platform/glib"
@@ -38,6 +39,11 @@
 )
 
 list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS
+    accessibility/atspi/AccessibilityAtspi.h
+    accessibility/atspi/AccessibilityAtspiEnums.h
+    accessibility/atspi/AccessibilityObjectAtspi.h
+    accessibility/atspi/AccessibilityRootAtspi.h
+
     platform/glib/ApplicationGLib.h
 
     platform/graphics/wayland/PlatformDisplayWayland.h
@@ -86,3 +92,41 @@
     list(APPEND WebCore_LIBRARIES ${OPENXR_LIBRARIES})
     list(APPEND WebCore_SYSTEM_INCLUDE_DIRECTORIES ${OPENXR_INCLUDE_DIRS})
 endif ()
+
+if (USE_ATSPI)
+    set(WebCore_AtspiInterfaceFiles
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Accessible.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Action.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Application.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Cache.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Collection.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Component.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/DeviceEventController.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/DeviceEventListener.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Document.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/EditableText.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Event.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Hyperlink.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Hypertext.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Image.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Registry.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Selection.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Socket.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/TableCell.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Table.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Text.xml
+        ${WEBCORE_DIR}/accessibility/atspi/xml/Value.xml
+    )
+
+    add_custom_command(
+        OUTPUT ${WebCore_DERIVED_SOURCES_DIR}/AccessibilityAtspiInterfaces.h ${WebCore_DERIVED_SOURCES_DIR}/AccessibilityAtspiInterfaces.c
+        DEPENDS ${WebCore_AtspiInterfaceFiles}
+        COMMAND gdbus-codegen --interface-prefix=org.a11y.atspi --c-namespace=webkit --pragma-once --interface-info-header --output=${WebCore_DERIVED_SOURCES_DIR}/AccessibilityAtspiInterfaces.h ${WebCore_AtspiInterfaceFiles}
+        COMMAND gdbus-codegen --interface-prefix=org.a11y.atspi --c-namespace=webkit --interface-info-body --output=${WebCore_DERIVED_SOURCES_DIR}/AccessibilityAtspiInterfaces.c ${WebCore_AtspiInterfaceFiles}
+        VERBATIM
+    )
+
+    list(APPEND WebCore_SOURCES
+        ${WebCore_DERIVED_SOURCES_DIR}/AccessibilityAtspiInterfaces.c
+    )
+endif ()

Modified: trunk/Source/WebCore/SourcesWPE.txt (288730 => 288731)


--- trunk/Source/WebCore/SourcesWPE.txt	2022-01-28 07:04:12 UTC (rev 288730)
+++ trunk/Source/WebCore/SourcesWPE.txt	2022-01-28 07:05:55 UTC (rev 288731)
@@ -39,7 +39,24 @@
 accessibility/atk/WebKitAccessibleInterfaceValue.cpp
 accessibility/atk/WebKitAccessibleUtil.cpp
 
+accessibility/atspi/AccessibilityAtspi.cpp
+accessibility/atspi/AccessibilityObjectAtspi.cpp
+accessibility/atspi/AccessibilityObjectActionAtspi.cpp
+accessibility/atspi/AccessibilityObjectComponentAtspi.cpp
+accessibility/atspi/AccessibilityObjectDocumentAtspi.cpp
+accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp
+accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp
+accessibility/atspi/AccessibilityObjectImageAtspi.cpp
+accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp
+accessibility/atspi/AccessibilityObjectTableAtspi.cpp
+accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp
+accessibility/atspi/AccessibilityObjectTextAtspi.cpp
+accessibility/atspi/AccessibilityObjectValueAtspi.cpp
+accessibility/atspi/AccessibilityRootAtspi.cpp
+accessibility/atspi/AXObjectCacheAtspi.cpp
+
 editing/atk/FrameSelectionAtk.cpp
+editing/atspi/FrameSelectionAtspi.cpp
 editing/libwpe/EditorLibWPE.cpp
 
 loader/soup/ResourceLoaderSoup.cpp

Modified: trunk/Source/WebKit/ChangeLog (288730 => 288731)


--- trunk/Source/WebKit/ChangeLog	2022-01-28 07:04:12 UTC (rev 288730)
+++ trunk/Source/WebKit/ChangeLog	2022-01-28 07:05:55 UTC (rev 288731)
@@ -1,3 +1,17 @@
+2022-01-27  Carlos Garcia Campos  <[email protected]>
+
+        [WPE][a11y] Add option to build with ATSPI
+        https://bugs.webkit.org/show_bug.cgi?id=235701
+
+        Reviewed by Adrian Perez de Castro.
+
+        * UIProcess/wpe/WebPageProxyWPE.cpp:
+        (WebKit::WebPageProxy::bindAccessibilityTree):
+        * WebProcess/WebPage/wpe/WebPageWPE.cpp:
+        (WebKit::WebPage::platformInitialize):
+        (WebKit::WebPage::platformDetach):
+        * WebProcess/wpe/WebProcessMainWPE.cpp:
+
 2022-01-27  Antoine Quint  <[email protected]>
 
         [Model] Allow disabling interaction

Modified: trunk/Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp (288730 => 288731)


--- trunk/Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp	2022-01-28 07:04:12 UTC (rev 288730)
+++ trunk/Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp	2022-01-28 07:05:55 UTC (rev 288731)
@@ -30,7 +30,7 @@
 #include "InputMethodState.h"
 #include "PageClientImpl.h"
 
-#if USE(ATK)
+#if ENABLE(ACCESSIBILITY)
 #include <atk/atk.h>
 #endif
 
@@ -47,7 +47,7 @@
 
 void WebPageProxy::bindAccessibilityTree(const String& plugID)
 {
-#if USE(ATK)
+#if ENABLE(ACCESSIBILITY)
     auto* accessible = static_cast<PageClientImpl&>(pageClient()).accessible();
     atk_socket_embed(ATK_SOCKET(accessible), const_cast<char*>(plugID.utf8().data()));
     atk_object_notify_state_change(accessible, ATK_STATE_TRANSIENT, FALSE);

Modified: trunk/Source/WebKit/WebProcess/WebPage/wpe/WebPageWPE.cpp (288730 => 288731)


--- trunk/Source/WebKit/WebProcess/WebPage/wpe/WebPageWPE.cpp	2022-01-28 07:04:12 UTC (rev 288730)
+++ trunk/Source/WebKit/WebProcess/WebPage/wpe/WebPageWPE.cpp	2022-01-28 07:05:55 UTC (rev 288731)
@@ -43,10 +43,19 @@
     // entry point to the web process, and send a message to the UI
     // process to connect the two worlds through the accessibility
     // object there specifically placed for that purpose (the socket).
+#if USE(ATK)
     m_accessibilityObject = adoptGRef(webkitWebPageAccessibilityObjectNew(this));
     GUniquePtr<gchar> plugID(atk_plug_get_id(ATK_PLUG(m_accessibilityObject.get())));
     send(Messages::WebPageProxy::BindAccessibilityTree(String(plugID.get())));
+#elif USE(ATSPI)
+    if (auto* page = corePage()) {
+        m_accessibilityRootObject = AccessibilityRootAtspi::create(*page);
+        m_accessibilityRootObject->registerObject([&](const String& plugID) {
+            send(Messages::WebPageProxy::BindAccessibilityTree(plugID));
+        });
+    }
 #endif
+#endif
 }
 
 void WebPage::platformReinitialize()
@@ -55,6 +64,10 @@
 
 void WebPage::platformDetach()
 {
+#if USE(ATSPI)
+    if (m_accessibilityRootObject)
+        m_accessibilityRootObject->unregisterObject();
+#endif
 }
 
 bool WebPage::performDefaultBehaviorForKeyEvent(const WebKeyboardEvent&)

Modified: trunk/Source/WebKit/WebProcess/wpe/WebProcessMainWPE.cpp (288730 => 288731)


--- trunk/Source/WebKit/WebProcess/wpe/WebProcessMainWPE.cpp	2022-01-28 07:04:12 UTC (rev 288730)
+++ trunk/Source/WebKit/WebProcess/wpe/WebProcessMainWPE.cpp	2022-01-28 07:05:55 UTC (rev 288731)
@@ -31,7 +31,7 @@
 #include "WebProcess.h"
 #include <glib.h>
 
-#if ENABLE(ACCESSIBILITY)
+#if USE(ATK)
 #include <atk-bridge.h>
 #include <atk/atk.h>
 #endif
@@ -43,7 +43,7 @@
 namespace WebKit {
 using namespace WebCore;
 
-#if ENABLE(ACCESSIBILITY)
+#if USE(ATK)
 static void initializeAccessibility()
 {
     auto* atkUtilClass = ATK_UTIL_CLASS(g_type_class_ref(ATK_TYPE_UTIL));
@@ -93,7 +93,7 @@
         // FIXME: This should be probably called in other processes as well.
         g_set_prgname("WPEWebProcess");
 
-#if ENABLE(ACCESSIBILITY)
+#if USE(ATK)
         initializeAccessibility();
 #endif
 

Modified: trunk/Source/cmake/OptionsWPE.cmake (288730 => 288731)


--- trunk/Source/cmake/OptionsWPE.cmake	2022-01-28 07:04:12 UTC (rev 288730)
+++ trunk/Source/cmake/OptionsWPE.cmake	2022-01-28 07:05:55 UTC (rev 288731)
@@ -87,6 +87,7 @@
 WEBKIT_OPTION_DEFINE(USE_EXTERNAL_HOLEPUNCH "Whether to enable external holepunch" PRIVATE OFF)
 WEBKIT_OPTION_DEFINE(USE_ANGLE_WEBGL "Whether to use ANGLE as WebGL backend." PRIVATE OFF)
 WEBKIT_OPTION_DEPEND(USE_ANGLE_WEBGL ENABLE_WEBGL)
+WEBKIT_OPTION_DEFINE(USE_ATSPI "Whether to use the ATSPI a11y implementation instead of ATK." PRIVATE OFF)
 WEBKIT_OPTION_DEPEND(ENABLE_WEBGL2 USE_ANGLE_WEBGL)
 
 if (CMAKE_SYSTEM_NAME MATCHES "Linux")
@@ -278,7 +279,6 @@
 endif ()
 
 SET_AND_EXPOSE_TO_BUILD(HAVE_ACCESSIBILITY ${ENABLE_ACCESSIBILITY})
-SET_AND_EXPOSE_TO_BUILD(USE_ATK ${ENABLE_ACCESSIBILITY})
 SET_AND_EXPOSE_TO_BUILD(USE_CAIRO TRUE)
 SET_AND_EXPOSE_TO_BUILD(USE_EGL TRUE)
 SET_AND_EXPOSE_TO_BUILD(USE_GCRYPT TRUE)
@@ -293,6 +293,10 @@
     SET_AND_EXPOSE_TO_BUILD(USE_CAPSTONE ${ENABLE_DEVELOPER_MODE})
 endif ()
 
+if (NOT USE_ATSPI)
+    SET_AND_EXPOSE_TO_BUILD(USE_ATK TRUE)
+endif ()
+
 SET_AND_EXPOSE_TO_BUILD(USE_TEXTURE_MAPPER TRUE)
 SET_AND_EXPOSE_TO_BUILD(USE_TEXTURE_MAPPER_GL TRUE)
 SET_AND_EXPOSE_TO_BUILD(USE_TILED_BACKING_STORE TRUE)

Modified: trunk/Tools/ChangeLog (288730 => 288731)


--- trunk/Tools/ChangeLog	2022-01-28 07:04:12 UTC (rev 288730)
+++ trunk/Tools/ChangeLog	2022-01-28 07:05:55 UTC (rev 288731)
@@ -1,5 +1,14 @@
 2022-01-27  Carlos Garcia Campos  <[email protected]>
 
+        [WPE][a11y] Add option to build with ATSPI
+        https://bugs.webkit.org/show_bug.cgi?id=235701
+
+        Reviewed by Adrian Perez de Castro.
+
+        * WebKitTestRunner/PlatformWPE.cmake:
+
+2022-01-27  Carlos Garcia Campos  <[email protected]>
+
         [GTK][a11y] WTR: add implementation for all relation APIs with ATSPI
         https://bugs.webkit.org/show_bug.cgi?id=235702
 

Modified: trunk/Tools/WebKitTestRunner/PlatformWPE.cmake (288730 => 288731)


--- trunk/Tools/WebKitTestRunner/PlatformWPE.cmake	2022-01-28 07:04:12 UTC (rev 288730)
+++ trunk/Tools/WebKitTestRunner/PlatformWPE.cmake	2022-01-28 07:05:55 UTC (rev 288731)
@@ -44,6 +44,10 @@
     InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp
     InjectedBundle/atk/AccessibilityUIElementAtk.cpp
 
+    InjectedBundle/atspi/AccessibilityControllerAtspi.cpp
+    InjectedBundle/atspi/AccessibilityNotificationHandler.cpp
+    InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp
+
     InjectedBundle/wpe/ActivateFontsWPE.cpp
     InjectedBundle/wpe/InjectedBundleWPE.cpp
     InjectedBundle/wpe/TestRunnerWPE.cpp
@@ -53,6 +57,7 @@
     ${ATK_INCLUDE_DIRS}
     ${GLIB_INCLUDE_DIRS}
     ${WebKitTestRunner_DIR}/InjectedBundle/atk
+    ${WebKitTestRunner_DIR}/InjectedBundle/atspi
     ${WebKitTestRunner_DIR}/InjectedBundle/wpe
 )
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to