[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