[Webkit-unassigned] [Bug 72732] New: [GTK] Accessibility API tests not loading Gtk's accessibility implementation

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Nov 18 08:27:19 PST 2011


https://bugs.webkit.org/show_bug.cgi?id=72732

           Summary: [GTK] Accessibility API tests not loading Gtk's
                    accessibility implementation
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: Unspecified
        OS/Version: Unspecified
            Status: NEW
          Keywords: Gtk
          Severity: Normal
          Priority: P2
         Component: WebKit Gtk
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: msanchez at igalia.com
                CC: pnormand at igalia.com


After some investigation because of the issues temporarily fixed along with bug 72708, I found the root reason behind of AtkObject's for non-WebKit GtkWidgets non being loaded through gtk_widget_get_accessible(), in testatk.c:

The problem is that, as the other API tests for WebKitGTK+, the testing framework is being initialized through the gtk_test_init() function, and if we read across the documentation of that function: 

   "It will in turn call g_test_init() and gtk_init() to properly initialize the testing framework and
    graphical toolkit. It'll also set the program's locale to "C" and prevent loading of rc files  and
    Gtk+ modules. This is done to make tets program environments as deterministic as possible."

As you can see, calling that function "prevents loading Gtk+ modules", so that's why GtkWidgets were not returning the proper AtkObjects for them, even after running the test with GTK_MODULES=gail. Actually, we find clear proof of this in gtk_test_init() source code:

   void gtk_test_init (int *argcp,  char ***argvp,  ...)
   {
     g_test_init (argcp, argvp, NULL);

     g_setenv ("GTK_MODULES", "", TRUE);   // SEE THIS?
     gtk_disable_setlocale();
     setlocale (LC_ALL, "C");
     g_test_bug_base ("http://bugzilla.gnome.org/show_bug.cgi?id=%s");

     gdk_disable_multidevice ();

     gtk_init (argcp, argvp);
   }

Fortunately, this should stop being a problem after updating the bots to Gtk+ 3.2, since GAIL (Gtk+ Accessibility Implementation Library) won't longer be a separate module but part of Gtk+. However, until that happens we'll need to handle this in some way, and my proposal at this point would be to replace usage of gtk_test_init() in testatk.c with a helper function that basically copies the code from gtk_test_init(), modifying it to load the "gail" module only, instead of ensuring that no module is loaded.

Will attach a patch soon implementing that idea, and properly commenting the situation in the code.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list