Changeset 105503 in webkit


Ignore:
Timestamp:
Jan 20, 2012 3:29:36 AM (12 years ago)
Author:
mario@webkit.org
Message:

[GTK] Expose accessibility hierarchy in WebKit2 to ATK/AT-SPI based ATs
https://bugs.webkit.org/show_bug.cgi?id=72589

Reviewed by Martin Robinson.

.:

New optional dependency for WK2's accessibility unit test: AT-SPI2.

  • configure.ac: Check for AT-SPI2 when building with WK2 support.

Source/WebKit2:

Expose the accessibility hierarchy in the multi-process
architecture of WK2 through AtkSocket and AtkPlug.

Make the WebView widget return an AtkSocket when calling to
gtk_widget_get_accessible().

  • GNUmakefile.am: Add new files.
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkit_web_view_base_init):
(webkitWebViewBaseGetAccessible):
(webkit_web_view_base_class_init):

  • UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp: Added.

(webkitWebViewBaseAccessibleWidgetFinalize):
(webkitWebViewBaseAccessibleWidgetDestroyed):
(webkitWebViewBaseAccessibleInitialize):
(webkitWebViewBaseAccessibleRefStateSet):
(webkitWebViewBaseAccessibleGetIndexInParent):
(webkit_web_view_base_accessible_init):
(webkit_web_view_base_accessible_class_init):
(webkitWebViewBaseAccessibleNew):

  • UIProcess/API/gtk/WebKitWebViewBaseAccessible.h: Added.

Make the WebPage create an AtkPlug on its initialization and
sending the ID of that plug to the UI process, so it can embed the
plug in the socket.

Also, take care of all the needed wrapping around the WebCore's
accessibility objects, exposing them in the UI process's
accessibility hierarchy thanks to the socket-plug connection.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::accessibilityPlugID):

  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::bindAccessibilityTree):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

  • WebProcess/WebPage/gtk/WebPageAccessibilityObject.cpp: Added.

(accessibilityRootObjectWrapper):
(webPageAccessibilityObjectInitialize):
(webPageAccessibilityObjectGetIndexInParent):
(webPageAccessibilityObjectGetNChildren):
(webPageAccessibilityObjectRefChild):
(web_page_accessibility_object_init):
(web_page_accessibility_object_class_init):
(webPageAccessibilityObjectNew):
(webPageAccessibilityObjectRefresh):

  • WebProcess/WebPage/gtk/WebPageAccessibilityObject.h: Added.
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformInitialize):
(WebKit::WebPage::updateAccessibilityTree):

New unit test for checking accessibility support in WK2GTK.

  • UIProcess/API/gtk/tests/AccessibilityTestServer.cpp: Added.

(loadChangedCallback): Notify the parent process (the test)
when ready.
(main):

  • UIProcess/API/gtk/tests/GNUmakefile.am:
  • UIProcess/API/gtk/tests/TestWebKitAccessibility.cpp: Added.

(stopTestServer):
(sigAbortHandler):
(testServerMonitorThreadFunc):
(startTestServerMonitor):
(startTestServer):
(checkAtspiAccessible):
(findTestServerApplication):
(testAtspiBasicHierarchy):
(beforeAll):
(afterAll):

Tools:

Ensure the accessibility infrastructure is available when running
the unit tests, otherwise WK2's accessibility tests won't work.

  • Scripts/run-gtk-tests:

(TestRunner):
(TestRunner._lookup_atspi2_binary): New. Looks for the directory
where at-spi2's stuff is located (like at-spi-bus-launcher and
at-spi2-registryd).
(TestRunner.run): Initialize the accessibility infrastructure.

  • gtk/generate-gtkdoc:

(get_webkit2_options): Add 'WebKitWebViewBaseAccessible.*'.

  • gtk/jhbuild.modules: Added at-spi2-core and at-spi2-atk.
Location:
trunk
Files:
6 added
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/ChangeLog

    r105498 r105503  
     12012-01-20  Mario Sanchez Prada  <msanchez@igalia.com>
     2
     3        [GTK] Expose accessibility hierarchy in WebKit2 to ATK/AT-SPI based ATs
     4        https://bugs.webkit.org/show_bug.cgi?id=72589
     5
     6        Reviewed by Martin Robinson.
     7
     8        New optional dependency for WK2's accessibility unit test: AT-SPI2.
     9
     10        * configure.ac: Check for AT-SPI2 when building with WK2 support.
     11
    1122012-01-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
    213
  • trunk/Source/WebKit2/ChangeLog

    r105498 r105503  
     12012-01-20  Mario Sanchez Prada  <msanchez@igalia.com>
     2
     3        [GTK] Expose accessibility hierarchy in WebKit2 to ATK/AT-SPI based ATs
     4        https://bugs.webkit.org/show_bug.cgi?id=72589
     5
     6        Reviewed by Martin Robinson.
     7
     8        Expose the accessibility hierarchy in the multi-process
     9        architecture of WK2 through AtkSocket and AtkPlug.
     10
     11        Make the WebView widget return an AtkSocket when calling to
     12        gtk_widget_get_accessible().
     13
     14        * GNUmakefile.am: Add new files.
     15        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
     16        (webkit_web_view_base_init):
     17        (webkitWebViewBaseGetAccessible):
     18        (webkit_web_view_base_class_init):
     19        * UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp: Added.
     20        (webkitWebViewBaseAccessibleWidgetFinalize):
     21        (webkitWebViewBaseAccessibleWidgetDestroyed):
     22        (webkitWebViewBaseAccessibleInitialize):
     23        (webkitWebViewBaseAccessibleRefStateSet):
     24        (webkitWebViewBaseAccessibleGetIndexInParent):
     25        (webkit_web_view_base_accessible_init):
     26        (webkit_web_view_base_accessible_class_init):
     27        (webkitWebViewBaseAccessibleNew):
     28        * UIProcess/API/gtk/WebKitWebViewBaseAccessible.h: Added.
     29
     30        Make the WebPage create an AtkPlug on its initialization and
     31        sending the ID of that plug to the UI process, so it can embed the
     32        plug in the socket.
     33
     34        Also, take care of all the needed wrapping around the WebCore's
     35        accessibility objects, exposing them in the UI process's
     36        accessibility hierarchy thanks to the socket-plug connection.
     37
     38        * UIProcess/WebPageProxy.h:
     39        (WebKit::WebPageProxy::accessibilityPlugID):
     40        * UIProcess/WebPageProxy.messages.in:
     41        * UIProcess/gtk/WebPageProxyGtk.cpp:
     42        (WebKit::WebPageProxy::bindAccessibilityTree):
     43        * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
     44        (WebKit::WebFrameLoaderClient::dispatchDidFinishLoad):
     45        * WebProcess/WebPage/WebPage.cpp:
     46        (WebKit::WebPage::WebPage):
     47        * WebProcess/WebPage/gtk/WebPageAccessibilityObject.cpp: Added.
     48        (accessibilityRootObjectWrapper):
     49        (webPageAccessibilityObjectInitialize):
     50        (webPageAccessibilityObjectGetIndexInParent):
     51        (webPageAccessibilityObjectGetNChildren):
     52        (webPageAccessibilityObjectRefChild):
     53        (web_page_accessibility_object_init):
     54        (web_page_accessibility_object_class_init):
     55        (webPageAccessibilityObjectNew):
     56        (webPageAccessibilityObjectRefresh):
     57        * WebProcess/WebPage/gtk/WebPageAccessibilityObject.h: Added.
     58        * WebProcess/WebPage/gtk/WebPageGtk.cpp:
     59        (WebKit::WebPage::platformInitialize):
     60        (WebKit::WebPage::updateAccessibilityTree):
     61
     62        New unit test for checking accessibility support in WK2GTK.
     63
     64        * UIProcess/API/gtk/tests/AccessibilityTestServer.cpp: Added.
     65        (loadChangedCallback): Notify the parent process (the test)
     66        when ready.
     67        (main):
     68        * UIProcess/API/gtk/tests/GNUmakefile.am:
     69        * UIProcess/API/gtk/tests/TestWebKitAccessibility.cpp: Added.
     70        (stopTestServer):
     71        (sigAbortHandler):
     72        (testServerMonitorThreadFunc):
     73        (startTestServerMonitor):
     74        (startTestServer):
     75        (checkAtspiAccessible):
     76        (findTestServerApplication):
     77        (testAtspiBasicHierarchy):
     78        (beforeAll):
     79        (afterAll):
     80
    1812012-01-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
    282
  • trunk/Source/WebKit2/GNUmakefile.am

    r105475 r105503  
    547547        Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.h \
    548548        Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp \
     549        Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBaseAccessible.h \
     550        Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBaseAccessible.cpp \
    549551        Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBasePrivate.h \
    550552        Source/WebKit2/UIProcess/API/gtk/WebKitWindowProperties.cpp \
     
    892894        Source/WebKit2/WebProcess/WebPage/FindController.h \
    893895        Source/WebKit2/WebProcess/WebPage/gtk/WebInspectorGtk.cpp \
     896        Source/WebKit2/WebProcess/WebPage/gtk/WebPageAccessibilityObject.h \
     897        Source/WebKit2/WebProcess/WebPage/gtk/WebPageAccessibilityObject.cpp \
    894898        Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp \
    895899        Source/WebKit2/WebProcess/WebPage/LayerTreeHost.cpp \
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp

    r105289 r105503  
    3737#include "WebEventFactory.h"
    3838#include "WebKitPrivate.h"
     39#include "WebKitWebViewBaseAccessible.h"
    3940#include "WebKitWebViewBasePrivate.h"
    4041#include "WebPageProxy.h"
     
    7071    DragIcon dragIcon;
    7172    IntSize resizerSize;
     73    GRefPtr<AtkObject> accessible;
    7274};
    7375
     
    376378}
    377379
     380static AtkObject* webkitWebViewBaseGetAccessible(GtkWidget* widget)
     381{
     382    // If the socket has already been created and embedded a plug ID, return it.
     383    WebKitWebViewBasePrivate* priv = WEBKIT_WEB_VIEW_BASE(widget)->priv;
     384    if (priv->accessible && atk_socket_is_occupied(ATK_SOCKET(priv->accessible.get())))
     385        return priv->accessible.get();
     386
     387    // Create the accessible object and associate it to the widget.
     388    if (!priv->accessible) {
     389        priv->accessible = adoptGRef(ATK_OBJECT(webkitWebViewBaseAccessibleNew(widget)));
     390
     391        // Set the parent not to break bottom-up navigation.
     392        GtkWidget* parentWidget = gtk_widget_get_parent(widget);
     393        AtkObject* axParent = parentWidget ? gtk_widget_get_accessible(parentWidget) : 0;
     394        if (axParent)
     395            atk_object_set_parent(priv->accessible.get(), axParent);
     396    }
     397
     398    // Try to embed the plug in the socket, if posssible.
     399    String plugID = priv->pageProxy->accessibilityPlugID();
     400    if (plugID.isNull())
     401        return priv->accessible.get();
     402
     403    atk_socket_embed(ATK_SOCKET(priv->accessible.get()), const_cast<gchar*>(plugID.utf8().data()));
     404
     405    return priv->accessible.get();
     406}
     407
    378408static gboolean webkitWebViewBaseDragMotion(GtkWidget* widget, GdkDragContext* context, gint x, gint y, guint time)
    379409{
     
    440470    widgetClass->drag_drop = webkitWebViewBaseDragDrop;
    441471    widgetClass->drag_data_received = webkitWebViewBaseDragDataReceived;
     472    widgetClass->get_accessible = webkitWebViewBaseGetAccessible;
    442473
    443474    GObjectClass* gobjectClass = G_OBJECT_CLASS(webkitWebViewBaseClass);
  • trunk/Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am

    r98245 r105503  
    77
    88noinst_PROGRAMS += $(TEST_PROGS)
     9
     10if HAVE_ATSPI2
     11TEST_PROGS += Programs/WebKit2APITests/TestWebKitAccessibility
     12
     13noinst_PROGRAMS += Programs/WebKit2APITests/AccessibilityTestServer
     14endif
     15
    916webkit2_tests_cppflags = \
    1017        -DWEBKIT_EXEC_PATH=\"${shell pwd}/$(top_builddir)/Programs\" \
     
    7784Programs_WebKit2APITests_TestBackForwardList_LDFLAGS = $(webkit2_tests_ldflags)
    7885
     86if HAVE_ATSPI2
     87Programs_WebKit2APITests_AccessibilityTestServer_SOURCES = \
     88        Source/WebKit2/UIProcess/API/gtk/tests/AccessibilityTestServer.cpp
     89Programs_WebKit2APITests_AccessibilityTestServer_CPPFLAGS = $(webkit2_tests_cppflags)
     90Programs_WebKit2APITests_AccessibilityTestServer_LDADD = $(webkit2_tests_ldadd)
     91Programs_WebKit2APITests_AccessibilityTestServer_LDFLAGS = $(webkit2_tests_ldflags)
     92
     93Programs_WebKit2APITests_TestWebKitAccessibility_SOURCES = \
     94        Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitAccessibility.cpp
     95Programs_WebKit2APITests_TestWebKitAccessibility_CPPFLAGS = $(webkit2_tests_cppflags) $(ATSPI2_CFLAGS)
     96Programs_WebKit2APITests_TestWebKitAccessibility_LDADD = $(webkit2_tests_ldadd) $(ATSPI2_LIBS)
     97Programs_WebKit2APITests_TestWebKitAccessibility_LDFLAGS = $(webkit2_tests_ldflags)
     98endif
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r105439 r105503  
    570570    bool isSmartInsertDeleteEnabled() const { return m_isSmartInsertDeleteEnabled; }
    571571    void setSmartInsertDeleteEnabled(bool);
     572#endif
     573
     574#if PLATFORM(GTK)
     575    String accessibilityPlugID() const { return m_accessibilityPlugID; }
    572576#endif
    573577
     
    751755#if PLATFORM(GTK)
    752756    void getEditorCommandsForKeyEvent(const AtomicString&, Vector<String>&);
     757    void bindAccessibilityTree(const String&);
    753758#endif
    754759#if PLATFORM(EFL)
     
    980985#endif
    981986
     987#if PLATFORM(GTK)
     988    String m_accessibilityPlugID;
     989#endif
     990
    982991    int64_t m_spellDocumentTag;
    983992    bool m_hasSpellDocumentTag;
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in

    r105275 r105503  
    148148    # Support for GTK+ platform keybindings
    149149    GetEditorCommandsForKeyEvent(AtomicString eventType) -> (Vector<WTF::String> commandsList)
     150
     151    # Support for connecting the Accessibility worlds of the UI and the Web processes
     152    BindAccessibilityTree(WTF::String plugID)
    150153#endif
    151154
  • trunk/Source/WebKit2/UIProcess/gtk/WebPageProxyGtk.cpp

    r95901 r105503  
    5050}
    5151
     52void WebPageProxy::bindAccessibilityTree(const String& plugID)
     53{
     54    m_accessibilityPlugID = plugID;
     55}
     56
    5257void WebPageProxy::saveRecentSearches(const String&, const Vector<String>&)
    5358{
  • trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp

    r105062 r105503  
    13731373
    13741374    webPage->injectedBundleLoaderClient().didClearWindowObjectForFrame(webPage, m_frame, world);
     1375
     1376#if PLATFORM(GTK)
     1377    // Ensure the accessibility hierarchy is updated.
     1378    webPage->updateAccessibilityTree();
     1379#endif
    13751380}
    13761381
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r105497 r105503  
    190190#elif PLATFORM(WIN)
    191191    , m_nativeWindow(parameters.nativeWindow)
     192#elif PLATFORM(GTK)
     193    , m_accessibilityObject(0)
    192194#endif
    193195    , m_setCanStartMediaTimer(WebProcess::shared().runLoop(), this, &WebPage::setCanStartMediaTimerFired)
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h

    r105475 r105503  
    7171#if PLATFORM(GTK)
    7272#include "ArgumentCodersGtk.h"
     73#include "WebPageAccessibilityObject.h"
    7374#endif
    7475
     
    398399    void gestureDidScroll(const WebCore::IntSize&);
    399400    void gestureDidEnd();
     401
     402#elif PLATFORM(GTK)
     403    void updateAccessibilityTree();
    400404#endif
    401405
     
    599603    void setTextForActivePopupMenu(int32_t index);
    600604
    601 #if PLATFORM(GTK)   
     605#if PLATFORM(GTK)
    602606    void failedToShowPopupMenu();
    603 #endif   
     607#endif
    604608
    605609    void didChooseFilesForOpenPanel(const Vector<String>&);
     
    678682
    679683    RefPtr<WebCore::Node> m_gestureTargetNode;
     684#elif PLATFORM(GTK)
     685    WebPageAccessibilityObject* m_accessibilityObject;
    680686#endif
    681687   
  • trunk/Source/WebKit2/WebProcess/WebPage/gtk/WebPageGtk.cpp

    r95901 r105503  
    3131#include "NotImplemented.h"
    3232#include "WebEvent.h"
     33#include "WebPageAccessibilityObject.h"
     34#include "WebPageProxyMessages.h"
    3335#include "WindowsKeyboardCodes.h"
    3436#include <WebCore/FocusController.h>
     
    3840#include <WebCore/PlatformKeyboardEvent.h>
    3941#include <WebCore/Settings.h>
     42#include <wtf/gobject/GOwnPtr.h>
    4043
    4144using namespace WebCore;
     
    4548void WebPage::platformInitialize()
    4649{
    47     notImplemented();
     50    // Create the accessible object (the plug) that will serve as the
     51    // entry point to the Web process, and send a message to the UI
     52    // process to connect the two worlds through the accessibility
     53    // object there specifically placed for that purpose (the socket).
     54    m_accessibilityObject = webPageAccessibilityObjectNew(this);
     55    GOwnPtr<gchar> plugID(atk_plug_get_id(ATK_PLUG(m_accessibilityObject)));
     56    send(Messages::WebPageProxy::BindAccessibilityTree(String(plugID.get())));
     57}
     58
     59void WebPage::updateAccessibilityTree()
     60{
     61    if (!m_accessibilityObject)
     62        return;
     63
     64    webPageAccessibilityObjectRefresh(m_accessibilityObject);
    4865}
    4966
  • trunk/Tools/ChangeLog

    r105500 r105503  
     12012-01-20  Mario Sanchez Prada  <msanchez@igalia.com>
     2
     3        [GTK] Expose accessibility hierarchy in WebKit2 to ATK/AT-SPI based ATs
     4        https://bugs.webkit.org/show_bug.cgi?id=72589
     5
     6        Reviewed by Martin Robinson.
     7
     8        Ensure the accessibility infrastructure is available when running
     9        the unit tests, otherwise WK2's accessibility tests won't work.
     10
     11        * Scripts/run-gtk-tests:
     12        (TestRunner):
     13        (TestRunner._lookup_atspi2_binary): New. Looks for the directory
     14        where at-spi2's stuff is located (like at-spi-bus-launcher and
     15        at-spi2-registryd).
     16        (TestRunner.run): Initialize the accessibility infrastructure.
     17
     18        * gtk/generate-gtkdoc:
     19        (get_webkit2_options): Add 'WebKitWebViewBaseAccessible.*'.
     20
     21        * gtk/jhbuild.modules: Added at-spi2-core and at-spi2-atk.
     22
    1232012-01-20  Hayato Ito  <hayato@chromium.org>
    224
  • trunk/Tools/Scripts/run-gtk-tests

    r103943 r105503  
    2626    TEST_DIRS = [ "unittests", "WebKit2APITests" ]
    2727    # FIXME: https://bugs.webkit.org/show_bug.cgi?id=74717
    28     SKIPPED = [ "unittests/testdownload", "unittests/testwebview", "unittests/testwebresource"]
     28    SKIPPED = [ "unittests/testdownload", "unittests/testwebview", "unittests/testwebresource" ]
    2929
    3030    def __init__(self):
     
    6565                    self._tests.append(test_path)
    6666
     67    def _lookup_atspi2_binary(self, jhbuild_path, filename):
     68        exec_prefix = self._executive.run_command([jhbuild_path ,'pkg-config', '--variable=exec_prefix', 'atspi-2']).rstrip('\r\n')
     69        paths_to_check = [ 'libexec',
     70                           'lib/at-spi2-core',
     71                           'lib32/at-spi2-core'
     72                           'lib64/at-spi2-core' ]
     73        for path in paths_to_check:
     74            filepath = os.path.join(exec_prefix, path, filename)
     75            if os.path.isfile(filepath):
     76                return filepath
     77
     78        return None
     79
    6780    def run(self):
    6881        if not self._tests:
     
    7992
    8093        jhbuild_path = os.path.join(self._gtk_tools_directory, "run-with-jhbuild")
     94
     95        # Make sure there's no AT_SPI_BUS X's property previously set,
     96        # otherwise the accessibility bus couldn't be properly launched.
     97        self._executive.run_command(['xprop', '-root', '-remove', 'AT_SPI_BUS'], env=test_env)
     98
     99        # Make sure the accessibility bus is launched.
     100        a11y_bus_launched = False
     101        a11y_bus_launcher_path = self._lookup_atspi2_binary(jhbuild_path, 'at-spi-bus-launcher')
     102        if a11y_bus_launcher_path:
     103            try:
     104                a11y_bus_launcher = Executive().popen([a11y_bus_launcher_path], env=test_env)
     105                a11y_bus_launched = True
     106            except:
     107                sys.stderr.write("Failed to launch the accessibility bus\n")
     108                sys.stderr.flush()
     109
     110        a11y_registryd_running = False
     111        a11y_registryd_path = self._lookup_atspi2_binary(jhbuild_path, 'at-spi2-registryd')
     112        if a11y_registryd_path:
     113            try:
     114                a11y_registryd = Executive().popen([a11y_registryd_path], env=test_env)
     115                a11y_registryd_running = True
     116            except:
     117                sys.stderr.write("Failed to run the accessibility registry\n")
     118                sys.stderr.flush()
     119
    81120        for test in self._tests:
    82121            out = self._executive.run_command([jhbuild_path ,'gtester', test], env=test_env,
     
    84123            sys.stdout.write(out)
    85124            sys.stdout.flush()
     125
     126        if a11y_registryd_running:
     127            a11y_registryd.kill()
     128        if a11y_bus_launched:
     129            a11y_bus_launcher.kill()
    86130
    87131        if exit_status[0]:
  • trunk/Tools/gtk/generate-gtkdoc

    r103938 r105503  
    6363                         glob.glob(src_path('WebKitUIClient.*')) + \
    6464                         glob.glob(src_path('WebKitWebLoaderClient.*')) + \
     65                         glob.glob(src_path('WebKitWebViewBaseAccessible.*')) + \
    6566                         glob.glob(src_path('tests/*.h'))
    6667    })
  • trunk/Tools/gtk/jhbuild.modules

    r105075 r105503  
    1515      <dep package="gnome-icon-theme"/>
    1616      <dep package="libsoup"/>
     17      <dep package="at-spi2-core"/>
     18      <dep package="at-spi2-atk"/>
    1719    </dependencies>
    1820  </metamodule>
     
    163165  </autotools>
    164166
     167  <autotools id="at-spi2-core">
     168    <branch module="pub/GNOME/sources/at-spi2-core/2.2/at-spi2-core-2.2.1.tar.xz" version="2.2.1"
     169            repo="ftp.gnome.org"
     170            hash="sha256:2a4129420decca3657e163a4dbb1a3cb28acafe32ea1292417fdd81084d48fac"
     171            md5sum="183916373d6906ff6b220bd44d15ff97">
     172    </branch>
     173    <dependencies>
     174      <dep package="glib"/>
     175    </dependencies>
     176  </autotools>
     177
     178  <autotools id="at-spi2-atk">
     179    <branch module="pub/GNOME/sources/at-spi2-atk/2.2/at-spi2-atk-2.2.1.tar.xz" version="2.2.1"
     180            repo="ftp.gnome.org"
     181            hash="sha256:6677def34b16c9a28d6ad96473ea56a3c0e13aa968e584df004cd44c8691ea1a"
     182            md5sum="19646097aca25a9c1b8ba7ab8d172916">
     183    </branch>
     184    <dependencies>
     185      <dep package="glib"/>
     186      <dep package="at-spi2-core"/>
     187    </dependencies>
     188  </autotools>
     189
    165190</moduleset>
  • trunk/configure.ac

    r105059 r105503  
    289289CLUTTER_REQUIRED_VERSION=1.8.2
    290290CLUTTER_GTK_REQUIRED_VERSION=1.0.2
     291ATSPI2_REQUIRED_VERSION=2.2.1
    291292
    292293# Available modules
     
    10491050fi
    10501051
     1052if test "$with_accelerated_compositing" = "clutter"; then
     1053   PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= $CLUTTER_REQUIRED_VERSION)
     1054   PKG_CHECK_MODULES([CLUTTER_GTK],
     1055                     [clutter-gtk-1.0 >= $CLUTTER_GTK_REQUIRED_VERSION])
     1056
     1057   AC_SUBST(CLUTTER_CFLAGS)
     1058   AC_SUBST(CLUTTER_LIBS)
     1059   AC_SUBST(CLUTTER_GTK_CFLAGS)
     1060   AC_SUBST(CLUTTER_GTK_LIBS)
     1061fi
     1062
     1063# check if atspi2 is available (only needed for Webkit2 unit tests)
     1064if test "$enable_webkit2" = "yes"; then
     1065   PKG_CHECK_MODULES([ATSPI2],
     1066                     [atspi-2 >= $ATSPI2_REQUIRED_VERSION],
     1067                     [have_atspi2=yes], [have_atspi2=no])
     1068
     1069   AC_SUBST([ATSPI2_CFLAGS])
     1070   AC_SUBST([ATSPI2_LIBS])
     1071fi
     1072
    10511073# check for code coverage support
    10521074if test "$enable_coverage" = "yes"; then
     
    11211143# GStreamer feature conditional
    11221144AM_CONDITIONAL([USE_GSTREAMER], [test "$have_gstreamer" = "yes"])
     1145
     1146# ATSPI2 conditional
     1147AM_CONDITIONAL([HAVE_ATSPI2], [test "$have_atspi2" = "yes"])
    11231148
    11241149# Accelerated compositing conditional
Note: See TracChangeset for help on using the changeset viewer.