[webkit-gtk] Win32 program for webkit-gtk cannot start on Windows XP

Phil Longstaff plongstaff at rogers.com
Sat Apr 10 17:19:53 PDT 2010


On Fri, 2010-04-09 at 17:05 -0700, SCU Rock wrote:
> Hi,
> 
>     Using cross-compiled webkit win32 library on
> http://sourceforge.net/projects/gnucash/files/gnucash%20%28unstable%
> 29/Win32%20Build%20Dependencies/webkit-1.1.90-win32.zip/download, I
> made a simple testing program on Windows :
> 
> --------------------------------------------------------
> #include <gtk/gtk.h>
> #include <webkit/webkit.h>
> 
> static void destroy_cb(GtkWidget* widget, gpointer data) {
>   gtk_main_quit();
> }
> 
> int main(int argc, char** argv) {
> 
>     GtkWidget* window;
>     gtk_init(&argc, &argv);
> 
>     // Create a Window, set colormap to RGBA
>     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
>     GdkScreen *screen = gtk_widget_get_screen(window);
>     GdkColormap *rgba = gdk_screen_get_rgba_colormap (screen);
> 
>     if (rgba && gdk_screen_is_composited (screen)) {
>         gtk_widget_set_default_colormap(rgba);
>         gtk_widget_set_colormap(GTK_WIDGET(window), rgba);
>     }
> 
>     gtk_window_set_default_size(GTK_WINDOW(window), 800, 600);
>     g_signal_connect(window, "destroy", G_CALLBACK(destroy_cb), NULL);
> 
>     // Optional: for dashboard style borderless windows
>     gtk_window_set_decorated(GTK_WINDOW(window), FALSE);
>     printf ("I am here\n");
>     // Create a WebView, set it transparent, add it to the window
>     WebKitWebView* web_view = WEBKIT_WEB_VIEW(webkit_web_view_new());
>     printf ("I am here 2\n");
>     //  webkit_web_view_set_transparent(web_view, TRUE);
>     gtk_container_add (GTK_CONTAINER(window), GTK_WIDGET(web_view));
> 
>     // Load a default page
>     webkit_web_view_open(web_view, "http://www.google.com");
> 
>     // Show it and continue running until the window closes
>     gtk_widget_grab_focus(GTK_WIDGET(web_view));
>     gtk_widget_show_all(window);
>     gtk_main();
>     return 0;
> }
> 
> It works well on Vista. The program has a bunch of DLL dependencies
> and I have put them on the same directory of the program. But on
> Window XP, it hangs at WEBKIT_WEB_VIEW(webkit_web_view_new()). There
> is no message, no CPU hike, just silent stuck. Does anyone know why
> the program cannot run on XP?
> 
> I know the library is not stable (being downloaded from "gnucash
> unstable"). But working on XP is very basic and should work, right?

That library is from the 1.1.90 src rpm from opensuse.  I applied most
of the 1.1.90.windows.patch file which came with the rpm, and also
applied Josip's mime-types patch to allow local files to be loaded.  I
then cross-compiled it on opensuse 11.2.  I can find the configuration
options if you want.

It is in the "gnucash (unstable)" folder on sourceforge because it is
being used with gnucash 2.3.X which is an unstable version (2.4.0 will
be the stable version resulting from testing 2.3.X).

If you look at the GtkLauncher.cpp source file (it would be in the
1.1.90 tarball on webkitgtk.org), that might give you some clues.
GtkLauncher is also in the zip file you downloaded from sourceforge, and
was also cross-built on opensuse 11.2.  It runs just fine on XP.

At some point, I'll rename the sourceforge folder to be something like
"win32 dependencies" at the main level, not under "gnucash (unstable)".
Of course, even better would be for webkitgtk to build properly without
needing all the patches and for there to be an automated mingw32 build.

Phil



More information about the webkit-gtk mailing list