Bug 32705

Summary: [GTK] segfault during controls initialization if not GTK theme is present.
Product: WebKit Reporter: Philippe Normand <pnormand>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: OS X 10.5   
Attachments:
Description Flags
Proposed patch xan.lopez: review+, xan.lopez: commit-queue-

Description Philippe Normand 2009-12-18 03:14:26 PST
You can reproduce this bug by running the tests in Xephyr without any window-manager running.

(gdb) bt
#0  strlen () at ../sysdeps/i386/i486/strlen.S:69
#1  0x00b0274e in WebCore::CString::CString(char const*) () from /home/phil/gst/jhbuild/build/WebKit/.libs/libwebkit-1.0.so.2
#2  0x00e25de8 in WebCore::getThemeIconFileName(char const*, int) () from /home/phil/gst/jhbuild/build/WebKit/.libs/libwebkit-1.0.so.2
#3  0x00e25fd0 in WebCore::Image::loadPlatformThemeIcon(char const*, int) () from /home/phil/gst/jhbuild/build/WebKit/.libs/libwebkit-1.0.so.2
#4  0x00e32b6b in WebCore::RenderThemeGtk::initMediaStyling(_GtkStyle*, bool) () from /home/phil/gst/jhbuild/build/WebKit/.libs/libwebkit-1.0.so.2
#5  0x00e311fd in WebCore::RenderThemeGtk::platformColorsDidChange() () from /home/phil/gst/jhbuild/build/WebKit/.libs/libwebkit-1.0.so.2
#6  0x00e30d41 in WebCore::gtkStyleSetCallback(_GtkWidget*, _GtkStyle*, WebCore::RenderTheme*) ()
   from /home/phil/gst/jhbuild/build/WebKit/.libs/libwebkit-1.0.so.2
#7  0x0043571c in IA__g_cclosure_marshal_VOID__OBJECT (closure=0x80ea8b0, return_value=0x0, n_param_values=2, param_values=0x80cf568, 
    invocation_hint=0xbfffdc70, marshal_data=0xb6824dc0) at gmarshal.c:636
#8  0x00427452 in IA__g_closure_invoke (closure=0x80ea8b0, return_value=0x0, n_param_values=2, param_values=0x80cf568, invocation_hint=0xbfffdc70)
    at gclosure.c:767
#9  0x0043df38 in signal_emit_unlocked_R (node=<value optimised out>, detail=<value optimised out>, instance=0x80e50b8, emission_return=0x0, 
    instance_and_params=0x80cf568) at gsignal.c:3247
#10 0x0043f31d in IA__g_signal_emit_valist (instance=0x80e50b8, signal_id=23, detail=0, var_args=0xbfffde30 "\270P\016\b\t") at gsignal.c:2980
#11 0x0043f7d6 in IA__g_signal_emit (instance=0x80e50b8, signal_id=23, detail=0) at gsignal.c:3037
#12 0x02a576f7 in gtk_widget_set_style_internal (widget=0x80e50b8, style=0x80e8390, initial_emission=1) at gtkwidget.c:6584
#13 0x02a5789b in gtk_widget_reset_rc_style (widget=0x80e50b8) at gtkwidget.c:6196
#14 0x02a59234 in IA__gtk_widget_realize (widget=0x80e50b8) at gtkwidget.c:3326
#15 0x00e31197 in WebCore::RenderThemeGtk::gtkContainer() const () from /home/phil/gst/jhbuild/build/WebKit/.libs/libwebkit-1.0.so.2
#16 0x00e33033 in WebCore::RenderThemeGtk::RenderThemeGtk() () from /home/phil/gst/jhbuild/build/WebKit/.libs/libwebkit-1.0.so.2
#17 0x00e330a3 in WebCore::RenderThemeGtk::create() () from /home/phil/gst/jhbuild/build/WebKit/.libs/libwebkit-1.0.so.2
#18 0x00e33125 in WebCore::RenderTheme::themeForPage(WebCore::Page*) () from /home/phil/gst/jhbuild/build/WebKit/.libs/libwebkit-1.0.so.2
#19 0x00a911ab in WebCore::Page::Page(WebCore::ChromeClient*, WebCore::ContextMenuClient*, WebCore::EditorClient*, WebCore::DragClient*, WebCore::InspectorClient*, WebCore::PluginHalterClient*, WebCore::GeolocationControllerClient*) () from /home/phil/gst/jhbuild/build/WebKit/.libs/libwebkit-1.0.so.2
#20 0x005c1f86 in webkit_web_view_init(_WebKitWebView*) () from /home/phil/gst/jhbuild/build/WebKit/.libs/libwebkit-1.0.so.2
#21 0x004491d7 in IA__g_type_create_instance (type=135335816) at gtype.c:1854
#22 0x0042d0b8 in g_object_constructor (type=135335816, n_construct_properties=0, construct_params=0x0) at gobject.c:1393
#23 0x0042e0d8 in IA__g_object_newv (object_type=135335816, n_parameters=0, parameters=0x0) at gobject.c:1176
#24 0x0042efc2 in IA__g_object_new_valist (object_type=135335816, first_property_name=0x0, var_args=0xbfffe3c8 "") at gobject.c:1333
#25 0x0042f13e in IA__g_object_new (object_type=135335816, first_property_name=0x0) at gobject.c:1091
#26 0x005bb213 in webkit_web_view_new () from /home/phil/gst/jhbuild/build/WebKit/.libs/libwebkit-1.0.so.2
#27 0x08053ad6 in createWebView() ()
#28 0x08055464 in main ()
Comment 1 Philippe Normand 2009-12-18 03:22:19 PST
Created attachment 45138 [details]
Proposed patch

Create empty images for the controls if no GTK theme is set.
Comment 2 WebKit Review Bot 2009-12-18 03:24:52 PST
style-queue ran check-webkit-style on attachment 45138 [details] without any errors.
Comment 3 Xan Lopez 2009-12-18 05:51:36 PST
Comment on attachment 45138 [details]
Proposed patch

r=me
Comment 4 Philippe Normand 2009-12-18 06:04:03 PST
Landed as r52309