ASSERTION FAILED: !needsLayout() (../../WebCore/page/FrameView.cpp:1975 virtual void WebCore::FrameView::paintContents(WebCore::GraphicsContext*, const WebCore::IntRect&)) Program received signal SIGSEGV, Segmentation fault. 0x012191d2 in WebCore::FrameView::paintContents (this=0xa4811b0, p=0xbfffd374, rect=...) at ../../WebCore/page/FrameView.cpp:1975 1975 ASSERT(!needsLayout()); (gdb) bt #0 0x012191d2 in WebCore::FrameView::paintContents (this=0xa4811b0, p=0xbfffd374, rect=...) at ../../WebCore/page/FrameView.cpp:1975 #1 0x012b8e1a in WebCore::ScrollView::paint (this=0xa4811b0, context=0xbfffd374, rect=...) at ../../WebCore/platform/ScrollView.cpp:833 #2 0x0162eed9 in paintWebView (frame=0x899fda0, transparent=0, context=..., clipRect=..., rects=...) at ../../WebKit/gtk/webkit/webkitwebview.cpp:517 #3 0x0162f1ae in webkit_web_view_draw (widget=0x8978098, cr=0x2ce860) at ../../WebKit/gtk/webkit/webkitwebview.cpp:585 #4 0x080c695f in ephy_web_view_draw (widget=0x8978098, cr=0x2ce860) at ../../embed/ephy-web-view.c:1195 #5 0x03dc1e2b in _gtk_marshal_BOOLEAN__BOXED (closure=0x814f220, return_value=0xbfffd570, n_param_values=2, param_values=0x8dd8ec8, invocation_hint=0xbfffd58c, marshal_data=0x80c6921) at gtkmarshalers.c:85 #6 0x03f3a1f2 in gtk_widget_draw_marshaller (closure=0x814f220, return_value=0xbfffd570, n_param_values=2, param_values=0x8dd8ec8, invocation_hint=0xbfffd58c, marshal_data=0x80c6921) at gtkwidget.c:691 #7 0x041dff0e in g_type_class_meta_marshal (closure=0x814f220, return_value=0xbfffd570, n_param_values=2, param_values=0x8dd8ec8, invocation_hint=0xbfffd58c, marshal_data=0x98) at gclosure.c:877 #8 0x041dfbfd in g_closure_invoke (closure=0x814f220, return_value=0xbfffd570, n_param_values=2, param_values=0x8dd8ec8, invocation_hint=0xbfffd58c) at gclosure.c:766 #9 0x041f81e5 in signal_emit_unlocked_R (node=0x814f3a8, detail=0, instance=0x8978098, emission_return=0xbfffd6ac, instance_and_params=0x8dd8ec8) at gsignal.c:3290 #10 0x041f73fb in g_signal_emit_valist (instance=0x8978098, signal_id=54, detail=0, var_args=0xbfffd780 "\274\327\377\277") at gsignal.c:2993 #11 0x041f765b in g_signal_emit (instance=0x8978098, signal_id=54, detail=0) at gsignal.c:3040 #12 0x03f42ce8 in _gtk_widget_draw_internal (widget=0x8978098, cr=0x2ce860, clip_to_size=1) at gtkwidget.c:5459 #13 0x03f43471 in gtk_widget_send_expose (widget=0x8978098, event=0xbfffd8b8) at gtkwidget.c:5699 #14 0x03dc03f6 in gtk_main_do_event (event=0xbfffd8b8) at gtkmain.c:1678 #15 0x001540bc in _gdk_window_process_updates_recurse (window=0x89e0bf0, expose_region=0x9367eb8) at gdkwindow.c:3976 #16 0x00153fca in _gdk_window_process_updates_recurse (window=0x83f8bf0, expose_region=0x91e8fd0) at gdkwindow.c:3949 #17 0x0018d722 in _gdk_windowing_window_process_updates_recurse (window=0x83f8bf0, region=0x91e8fd0) at gdkwindow-x11.c:5489 #18 0x0015435c in gdk_window_process_updates_internal (window=0x83f8bf0) at gdkwindow.c:4134 #19 0x00154572 in gdk_window_process_all_updates () at gdkwindow.c:4242 #20 0x03d14b35 in gtk_container_idle_sizer (data=0x0) at gtkcontainer.c:1611 #21 0x0013f84b in gdk_threads_dispatch (data=0x89e0110) at gdk.c:487 #22 0x0425d0a1 in g_idle_dispatch (source=0x9be8ce0, callback=0x13f806 <gdk_threads_dispatch>, user_data=0x89e0110) at gmain.c:4254 #23 0x042595f2 in g_main_dispatch (context=0x813aef8) at gmain.c:2149 #24 0x0425a8e6 in g_main_context_dispatch (context=0x813aef8) at gmain.c:2702 #25 0x0425ad3b in g_main_context_iterate (context=0x813aef8, block=1, dispatch=1, self=0x8112f18) at gmain.c:2780 #26 0x0425b4a4 in g_main_loop_run (loop=0x816ab08) at gmain.c:2988 #27 0x03dbfc33 in gtk_main () at gtkmain.c:1321 #28 0x0806d561 in main (argc=1, argv=0xbfffed64) at ../../src/ephy-main.c:741 (gdb)
It's pretty easy to reproduce if you close a tab that is not visible.
I do not see this in GTK+ 2, so it's probably GTK+ 3 only.
Does not happen to me either with gtk3.