NEW 70123
DumpRenderTree crashes on fast/gradients/border-image-gradient-sides-and-corners.html
https://bugs.webkit.org/show_bug.cgi?id=70123
Summary DumpRenderTree crashes on fast/gradients/border-image-gradient-sides-and-corn...
Raphael Kubo da Costa (:rakuco)
Reported 2011-10-14 11:36:10 PDT
If I run DumpRenderTree with "--pixel-tests" and pass fast/gradients/border-image-gradient-sides-and-corners.html to it, the assertion in computeMD5HashStringForBitmapContext in PixelDumpSupportCairo.cpp fails due to a problem which happens earlier when the page contents are being dumped into a PNG. At some point, there is a division by zero that causes inf to be passed as the first parameter to GraphicsContext::scale, which leads to cairo_scale failing and setting the status to CAIRO_STATUS_INVALID_MATRIX. This is the relevant stack trace: #0 _cairo_error (status=CAIRO_STATUS_INVALID_MATRIX) at /build/buildd/cairo-1.10.2/src/cairo.c:173 #1 0xb4644209 in _cairo_gstate_scale (gstate=0x84c1718, sx=inf, sy=1) at /build/buildd/cairo-1.10.2/src/cairo-gstate.c:663 #2 0xb463a38b in *INT_cairo_scale (cr=0xb46d2460, sx=inf, sy=1) at /build/buildd/cairo-1.10.2/src/cairo.c:1461 #3 0xb616a4ba in WebCore::GraphicsContext::scale (this=0xbfffd790, size=...) at ../../Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:1057 #4 0xb594ee05 in WebCore::GeneratedImage::draw (this=0x84b9278, context=0xbfffd790, dstRect=..., srcRect=..., compositeOp=WebCore::CompositeSourceOver) at ../../Source/WebCore/platform/graphics/GeneratedImage.cpp:44 #5 0xb5959331 in WebCore::GraphicsContext::drawImage (this=0xbfffd790, image=0x84b9278, styleColorSpace=WebCore::ColorSpaceDeviceRGB, dest=..., src=..., op=WebCore::CompositeSourceOver, useLowQualityScale=false) at ../../Source/WebCore/platform/graphics/GraphicsContext.cpp:487 #6 0xb5959003 in WebCore::GraphicsContext::drawImage (this=0xbfffd790, image=0x84b9278, styleColorSpace=WebCore::ColorSpaceDeviceRGB, dest=..., srcRect=..., op=WebCore::CompositeSourceOver, useLowQualityScale=false) at ../../Source/WebCore/platform/graphics/GraphicsContext.cpp:457 #7 0xb595952a in WebCore::GraphicsContext::drawTiledImage (this=0xbfffd790, image=0x84b9278, styleColorSpace=WebCore::ColorSpaceDeviceRGB, dest=..., srcRect=..., tileScaleFactor=..., hRule=WebCore::Image::StretchTile, vRule=WebCore::Image::StretchTile, op=WebCore::CompositeSourceOver, useLowQualityScale=false) at ../../Source/WebCore/platform/graphics/GraphicsContext.cpp:512 #8 0xb5a99f23 in WebCore::RenderBoxModelObject::paintNinePieceImage (this=0x84bf0c4, graphicsContext=0xbfffd790, rect=..., style=0x84bedd8, ninePieceImage=..., op=WebCore::CompositeSourceOver) at ../../Source/WebCore/rendering/RenderBoxModelObject.cpp:1110 #9 0xb5a9b81e in WebCore::RenderBoxModelObject::paintBorder (this=0x84bf0c4, info=..., rect=..., style=0x84bedd8, bleedAvoidance=WebCore::BackgroundBleedNone, includeLogicalLeftEdge=true, includeLogicalRightEdge=true) at ../../Source/WebCore/rendering/RenderBoxModelObject.cpp:1530 #10 0xb5a85b64 in WebCore::RenderBox::paintBoxDecorations (this=0x84bf0c4, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBox.cpp:945 #11 0xb5a3e820 in WebCore::RenderBlock::paintObject (this=0x84bf0c4, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2569 #12 0xb5a3d94e in WebCore::RenderBlock::paint (this=0x84bf0c4, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2365 #13 0xb5a3e4b0 in WebCore::RenderBlock::paintChildren (this=0x84bd6e4, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2522 #14 0xb5a3e1b9 in WebCore::RenderBlock::paintContents (this=0x84bd6e4, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2480 #15 0xb5a3e958 in WebCore::RenderBlock::paintObject (this=0x84bd6e4, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2593 #16 0xb5a3d94e in WebCore::RenderBlock::paint (this=0x84bd6e4, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2365 #17 0xb5a3e4b0 in WebCore::RenderBlock::paintChildren (this=0x84b8a7c, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2522 #18 0xb5a3e1b9 in WebCore::RenderBlock::paintContents (this=0x84b8a7c, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2480 #19 0xb5a3e958 in WebCore::RenderBlock::paintObject (this=0x84b8a7c, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2593 #20 0xb5a3d94e in WebCore::RenderBlock::paint (this=0x84b8a7c, paintInfo=..., paintOffset=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:2365 #21 0xb5ae3968 in WebCore::RenderLayer::paintLayer (this=0x84b8b04, rootLayer=0x849090c, p=0xbfffd790, paintDirtyRect=..., paintBehavior=0, paintingRoot=0x0, region=0x0, overlapTestRequests=0xbfffd5ac, paintFlags=0) at ../../Source/WebCore/rendering/RenderLayer.cpp:2790 #22 0xb5ae3eb6 in WebCore::RenderLayer::paintList (this=0x849090c, list=0x814c8a8, rootLayer=0x849090c, p=0xbfffd790, paintDirtyRect=..., paintBehavior=0, paintingRoot=0x0, region=0x0, overlapTestRequests=0xbfffd5ac, paintFlags=0) at ../../Source/WebCore/rendering/RenderLayer.cpp:2855 #23 0xb5ae3bfa in WebCore::RenderLayer::paintLayer (this=0x849090c, rootLayer=0x849090c, p=0xbfffd790, paintDirtyRect=..., paintBehavior=0, paintingRoot=0x0, region=0x0, overlapTestRequests=0xbfffd5ac, paintFlags=0) at ../../Source/WebCore/rendering/RenderLayer.cpp:2817 #24 0xb5ae2a72 in WebCore::RenderLayer::paint (this=0x849090c, p=0xbfffd790, damageRect=..., paintBehavior=0, paintingRoot=0x0, region=0x0, paintFlags=0) at ../../Source/WebCore/rendering/RenderLayer.cpp:2543 #25 0xb58c745b in WebCore::FrameView::paintContents (this=0x814ba30, p=0xbfffd790, rect=...) at ../../Source/WebCore/page/FrameView.cpp:2759 #26 0xb59cb81a in WebCore::ScrollView::paint (this=0x814ba30, context=0xbfffd790, rect=...) at ../../Source/WebCore/platform/ScrollView.cpp:1020 #27 0xb5200bb7 in paintWebView (frame=0x8134f70, transparent=0, context=..., clipRect=..., rects=...) at ../../Source/WebKit/gtk/webkit/webkitwebview.cpp:653 #28 0xb5200e6b in webkit_web_view_draw (widget=0x810c010, cr=0xb46d2460) at ../../Source/WebKit/gtk/webkit/webkitwebview.cpp:720 #29 0xb4bc4034 in ?? () from /usr/lib/libgtk-3.so.0 #30 0xb4d0026d in ?? () from /usr/lib/libgtk-3.so.0 #31 0xb47c9cc7 in g_type_class_meta_marshal (closure=0x80e3590, return_value=0xbfffda34, n_param_values=2, param_values=0x81200f0, invocation_hint=0xbfffda20, marshal_data=0x90) at /build/buildd/glib2.0-2.28.6/./gobject/gclosure.c:878 #32 0xb47cb2a0 in g_closure_invoke (closure=0x80e3590, return_value=0xbfffda34, n_param_values=2, param_values=0x81200f0, invocation_hint=0xbfffda20) at /build/buildd/glib2.0-2.28.6/./gobject/gclosure.c:767 #33 0xb47dde45 in signal_emit_unlocked_R (node=0x80f22a8, detail=0, instance=0x810c010, emission_return=0xbfffdb6c, instance_and_params=0x81200f0) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3290 #34 0xb47e68d7 in g_signal_emit_valist (instance=0x810c010, signal_id=34, detail=0, var_args=0xbfffdbe0 "\f\334\377\277") at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:2993 #35 0xb47e6cc2 in g_signal_emit (instance=0x810c010, signal_id=34, detail=0) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3040 #36 0xb4d13e9d in ?? () from /usr/lib/libgtk-3.so.0 #37 0xb4b36f55 in gtk_container_propagate_draw () from /usr/lib/libgtk-3.so.0 #38 0xb4b36fdd in ?? () from /usr/lib/libgtk-3.so.0 #39 0xb4aed62d in ?? () from /usr/lib/libgtk-3.so.0 #40 0xb4b355c4 in gtk_container_forall () from /usr/lib/libgtk-3.so.0 #41 0xb4b35777 in ?? () from /usr/lib/libgtk-3.so.0 #42 0xb4bc4034 in ?? () from /usr/lib/libgtk-3.so.0 #43 0xb4d0026d in ?? () from /usr/lib/libgtk-3.so.0 #44 0xb47c9cc7 in g_type_class_meta_marshal (closure=0x80e3590, return_value=0xbfffdf24, n_param_values=2, param_values=0x8120118, invocation_hint=0xbfffdf10, marshal_data=0x90) at /build/buildd/glib2.0-2.28.6/./gobject/gclosure.c:878 #45 0xb47cb372 in g_closure_invoke (closure=0x80e3590, return_value=0xbfffdf24, n_param_values=2, param_values=0x8120118, invocation_hint=0xbfffdf10) at /build/buildd/glib2.0-2.28.6/./gobject/gclosure.c:767 #46 0xb47dde45 in signal_emit_unlocked_R (node=0x80f22a8, detail=0, instance=0x80c2a50, emission_return=0xbfffe05c, instance_and_params=0x8120118) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3290 #47 0xb47e68d7 in g_signal_emit_valist (instance=0x80c2a50, signal_id=34, detail=0, var_args=0xbfffe0d0 "\374\340\377\277") at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:2993 #48 0xb47e6cc2 in g_signal_emit (instance=0x80c2a50, signal_id=34, detail=0) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3040 #49 0xb4d13e9d in ?? () from /usr/lib/libgtk-3.so.0 #50 0xb4d140d5 in gtk_widget_draw () from /usr/lib/libgtk-3.so.0 #51 0x080772c3 in createBitmapContextFromWebView (drawSelectionRect=false) at ../../Tools/DumpRenderTree/gtk/PixelDumpSupportGtk.cpp:59 #52 0x08069534 in dumpWebViewAsPixelsAndCompareWithExpected (expectedHash=...) at ../../Tools/DumpRenderTree/PixelDumpSupport.cpp:54 #53 0x0806f2fb in dump () at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:589 #54 0x080705ad in topLoadingFrameLoadFinished () at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1031 #55 0x080706d1 in webFrameLoadStatusNotified (frame=0x80d0fb0, user_data=0x80d1260) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1061 #56 0xb47e7e48 in g_cclosure_marshal_VOID__PARAM (closure=0x80e98e8, return_value=0x0, n_param_values=2, param_values=0x8120028, invocation_hint=0xbfffe430, marshal_data=0x0) at /build/buildd/glib2.0-2.28.6/./gobject/gmarshal.c:533 #57 0xb47cb372 in g_closure_invoke (closure=0x80e98e8, return_value=0x0, n_param_values=2, param_values=0x8120028, invocation_hint=0xbfffe430) at /build/buildd/glib2.0-2.28.6/./gobject/gclosure.c:767 #58 0xb47de048 in signal_emit_unlocked_R (node=0x80ab648, detail=781, instance=0x80d0fb0, emission_return=0x0, instance_and_params=0x8120028) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3252 #59 0xb47e6b29 in g_signal_emit_valist (instance=0x80d0fb0, signal_id=1, detail=781, var_args=0xbfffe5f0 "$\265z\264 \212\025\b") at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:2983 #60 0xb47e6cc2 in g_signal_emit (instance=0x80d0fb0, signal_id=1, detail=781) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3040 #61 0xb47cd0e1 in g_object_dispatch_properties_changed (object=0x80d0fb0, n_pspecs=1, pspecs=0xbfffe680) at /build/buildd/glib2.0-2.28.6/./gobject/gobject.c:925 #62 0xb47cc3ef in g_object_notify_dispatcher (object=0x80d0fb0, n_pspecs=1, pspecs=0xbfffe680) at /build/buildd/glib2.0-2.28.6/./gobject/gobject.c:330 #63 0xb47cf379 in g_object_notify_queue_thaw (object=0x80d0fb0, property_name=0xb61bcc58 "load-status") at /build/buildd/glib2.0-2.28.6/./gobject/gobjectnotifyqueue.c:132 #64 g_object_notify_by_spec_internal (object=0x80d0fb0, property_name=0xb61bcc58 "load-status") at /build/buildd/glib2.0-2.28.6/./gobject/gobject.c:983 #65 g_object_notify (object=0x80d0fb0, property_name=0xb61bcc58 "load-status") at /build/buildd/glib2.0-2.28.6/./gobject/gobject.c:1024 #66 0xb51cfe2e in WebKit::notifyStatus (frame=0x80d0fb0, loadStatus=WEBKIT_LOAD_FINISHED) at ../../Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:175 #67 0xb51cfeeb in WebKit::loadDone (frame=0x80d0fb0, didSucceed=true) at ../../Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:191 #68 0xb51d238c in WebKit::FrameLoaderClient::dispatchDidFinishLoad (this=0x8133f50) at ../../Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:686 #69 0xb581450e in WebCore::FrameLoader::checkLoadCompleteForThisFrame (this=0x8134fe0) at ../../Source/WebCore/loader/FrameLoader.cpp:2274 #70 0xb5814c44 in WebCore::FrameLoader::checkLoadComplete (this=0x8134fe0) at ../../Source/WebCore/loader/FrameLoader.cpp:2390 #71 0xb5813b0b in WebCore::FrameLoader::finishedLoading (this=0x8134fe0) at ../../Source/WebCore/loader/FrameLoader.cpp:2069 #72 0xb5843b99 in WebCore::MainResourceLoader::didFinishLoading (this=0x8494478, finishTime=0) at ../../Source/WebCore/loader/MainResourceLoader.cpp:488 #73 0xb584f313 in WebCore::ResourceLoader::didFinishLoading (this=0x8494478, finishTime=0) at ../../Source/WebCore/loader/ResourceLoader.cpp:451 #74 0xb59bc865 in WebCore::readCallback (source=0x84940c0, asyncResult=0x84ad360, data=0x0) at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:855 #75 0xb48529ff in async_ready_callback_wrapper (source_object=0x84940c0, res=0x84ad360, user_data=0x0) at /build/buildd/glib2.0-2.28.6/./gio/ginputstream.c:470 #76 0xb4863ccf in g_simple_async_result_complete (simple=0x84ad360) at /build/buildd/glib2.0-2.28.6/./gio/gsimpleasyncresult.c:747 #77 0xb4863d4e in complete_in_idle_cb_for_thread (_data=0x84bcf50) at /build/buildd/glib2.0-2.28.6/./gio/gsimpleasyncresult.c:812 #78 0xb4711311 in g_idle_dispatch (source=0x8499768, callback=0xb4863d20 <complete_in_idle_cb_for_thread>, user_data=0x84bcf50) at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:4545 #79 0xb4715aa8 in g_main_dispatch (context=0x80c6478) at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:2440 #80 g_main_context_dispatch (context=0x80c6478) at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:3013 #81 0xb4716270 in g_main_context_iterate (context=0x80c6478, block=-1267570656, dispatch=1, self=<value optimized out>) at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:3091 #82 0xb471692b in g_main_loop_run (loop=0x80d2468) at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:3299 #83 0xb4bc2e5d in gtk_main () from /usr/lib/libgtk-3.so.0 #84 0x0806f85f in runTest (testPathOrURL=...) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:710 #85 0x08071089 in main (argc=3, argv=0xbfffecd4) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:120
Attachments
Note You need to log in before you can comment on or make changes to this bug.