Bug 24565

Summary: [GTK] SVG - Crash on setting the cursor icon
Product: WebKit Reporter: Dirk Schulze <krit>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: xan.lopez
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: OS X 10.5   
URL: http://www.w3.org/Graphics/SVG/Test/20061213/htmlObjectHarness/full-interact-cursor-01-f.html
Attachments:
Description Flags
placeholer for image cusors eric: review+

Description Dirk Schulze 2009-03-12 15:30:37 PDT
If you move the cursor over "<url>", webkitgtk crashs. <url> seems to load an image and change the cursor by this image. But I could be wrong.
Firefox takes a crosshair instead. That's not the expected behavior here but maybe it's a fall back. We might need something similar too.

Here is the trace:

#0  0xb528fc30 in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#1  0xb52b4c0a in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#2  0xb5284e9b in gdk_window_set_cursor () from /usr/lib/libgdk-x11-2.0.so.0
#3  0xb74c8e00 in WebCore::Widget::setCursor (this=0x8d32dc8, 
    cursor=@0xbfaaa774) at ../../WebCore/platform/gtk/WidgetGtk.cpp:80
#4  0xb7144177 in WebCore::EventHandler::handleMouseMoveEvent (this=0x8e1a260, 
    mouseEvent=@0xbfaaa7f4, hoveredNode=0xbfaaa8ec)
    at ../../WebCore/page/EventHandler.cpp:1259
#5  0xb74af540 in WebCore::EventHandler::passMouseMoveEventToSubframe (
    this=0x890aa80, mev=@0xbfaaa7f4, subframe=0x8e19de0, 
    hoveredNode=0xbfaaa8ec) at ../../WebCore/page/gtk/EventHandlerGtk.cpp:111
#6  0xb7144059 in WebCore::EventHandler::handleMouseMoveEvent (this=0x890aa80, 
    mouseEvent=@0xbfaaa950, hoveredNode=0xbfaaa8ec)
    at ../../WebCore/page/EventHandler.cpp:1254
#7  0xb71442a1 in WebCore::EventHandler::mouseMoved (this=0x890aa80, 
    event=@0xbfaaa950) at ../../WebCore/page/EventHandler.cpp:1165
#8  0xb6dac520 in webkit_web_view_motion_event (widget=0x8906808, 
    event=0x88bbcc0) at ../../WebKit/gtk/webkit/webkitwebview.cpp:534
#9  0xb540f036 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#10 0xb4e303c9 in ?? () from /usr/lib/libgobject-2.0.so.0
#11 0xb4e31c4b in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#12 0xb4e47d3d in ?? () from /usr/lib/libgobject-2.0.so.0
#13 0xb4e4962b in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#14 0xb4e49c26 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#15 0xb552433e in ?? () from /usr/lib/libgtk-x11-2.0.so.0
#16 0xb5407b4c in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#17 0xb5408ef7 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#18 0xb529e50a in ?? () from /usr/lib/libgdk-x11-2.0.so.0
#19 0xb4da46f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#20 0xb4da7da3 in ?? () from /usr/lib/libglib-2.0.so.0
#21 0xb4da82c2 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#22 0xb54093a9 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#23 0x08049ea0 in main (argc=1, argv=0xbfaaafe4)
    at ../../WebKitTools/GtkLauncher/main.c:202
Comment 1 Dirk Schulze 2009-03-12 16:06:32 PDT
Created attachment 28565 [details]
placeholer for image cusors

We don't support image cursors. I added a placeholer (crosshair) to avoid crashes.
I took crosshair to have a common behavior together with firefox.
Comment 2 Xan Lopez 2009-03-13 13:35:30 PDT
(In reply to comment #1)
> Created an attachment (id=28565) [review]
> placeholer for image cusors
> 
> We don't support image cursors. I added a placeholer (crosshair) to avoid
> crashes.
> I took crosshair to have a common behavior together with firefox. 
> 

This looks good to me to avoid the crasher.

Mid-term we probably want to get https://bugs.webkit.org/show_bug.cgi?id=15654 in and use gdk_cursor_new_from_pixbuf, and longer term have API in GTK+ to create cursors from cairo surfaces directly.
Comment 3 Eric Seidel (no email) 2009-03-26 11:02:01 PDT
Comment on attachment 28565 [details]
placeholer for image cusors

Looks fine.  I'm surprised you used a cross-hair and no the default cursor (arrow I think?)  Looks fine though.
Comment 4 Dirk Schulze 2009-03-27 13:46:40 PDT
landed in r42049.