WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
173089
ASSERTION FAILED: !canAnimate() && !m_currentFrame
https://bugs.webkit.org/show_bug.cgi?id=173089
Summary
ASSERTION FAILED: !canAnimate() && !m_currentFrame
Fujii Hironori
Reported
2017-06-07 22:15:23 PDT
I see a following assertion failure while using MiniBrowser of WinCairo port (Debug buld, trunk@217917).
> ASSERTION FAILED: !canAnimate() && !m_currentFrame > C:\webkit\ga\Source\WebCore\platform\graphics\BitmapImage.cpp(191) : WebCore::BitmapImage::draw
Callstack:
> WTF.dll!WTFCrash() Line 292 C++ > WebKit.dll!WebCore::BitmapImage::draw(WebCore::GraphicsContext & context, const WebCore::FloatRect & destRect, const WebCore::FloatRect & srcRect, WebCore::CompositeOperator op, WebCore::BlendMode mode, WebCore::DecodingMode decodingMode, WebCore::ImageOrientationDescription description) Line 191 C++ > WebKit.dll!WebCore::GraphicsContext::drawImage(WebCore::Image & image, const WebCore::FloatRect & destination, const WebCore::FloatRect & source, const WebCore::ImagePaintingOptions & imagePaintingOptions) Line 732 C++ > WebKit.dll!WebCore::GraphicsContext::drawImage(WebCore::Image & image, const WebCore::FloatRect & destination, const WebCore::ImagePaintingOptions & imagePaintingOptions) Line 718 C++ > WebKit.dll!WebCore::RenderImage::paintIntoRect(WebCore::PaintInfo & paintInfo, const WebCore::FloatRect & rect) Line 590 C++ > WebKit.dll!WebCore::RenderImage::paintReplaced(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 480 C++ > WebKit.dll!WebCore::RenderReplaced::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 219 C++ > WebKit.dll!WebCore::RenderImage::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 495 C++ > WebKit.dll!WebCore::paintPhase(WebCore::RenderElement & element, WebCore::PaintPhase phase, WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & childPoint) Line 1214 C++ > WebKit.dll!WebCore::RenderElement::paintAsInlineBlock(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & childPoint) Line 1229 C++ > WebKit.dll!WebCore::InlineElementBox::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::LayoutUnit __formal, WebCore::LayoutUnit __formal) Line 92 C++ > WebKit.dll!WebCore::InlineFlowBox::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::LayoutUnit lineTop, WebCore::LayoutUnit lineBottom) Line 1231 C++ > WebKit.dll!WebCore::RootInlineBox::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::LayoutUnit lineTop, WebCore::LayoutUnit lineBottom) Line 177 C++ > WebKit.dll!WebCore::RenderLineBoxList::paint(WebCore::RenderBoxModelObject * renderer, WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 262 C++ > WebKit.dll!WebCore::RenderBlockFlow::paintInlineChildren(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 3621 C++ > WebKit.dll!WebCore::RenderBlock::paintContents(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1590 C++ > WebKit.dll!WebCore::RenderBlock::paintObject(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1748 C++ > WebKit.dll!WebCore::RenderBlock::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1569 C++ > WebKit.dll!WebCore::RenderBlock::paintChild(WebCore::RenderBox & child, WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::PaintInfo & paintInfoForChild, bool usePrintRect, WebCore::RenderBlock::PaintBlockType paintType) Line 1649 C++ > WebKit.dll!WebCore::RenderBlock::paintChildren(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::PaintInfo & paintInfoForChild, bool usePrintRect) Line 1609 C++ > WebKit.dll!WebCore::RenderBlock::paintContents(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1604 C++ > WebKit.dll!WebCore::RenderBlock::paintObject(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1748 C++ > WebKit.dll!WebCore::RenderBlock::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1569 C++ > WebKit.dll!WebCore::RenderLayer::paintForegroundForFragmentsWithPhase(WebCore::PaintPhase phase, const WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & localPaintingInfo, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRootForRenderer) Line 4839 C++ > WebKit.dll!WebCore::RenderLayer::paintForegroundForFragments(const WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments, WebCore::GraphicsContext & context, WebCore::GraphicsContext & contextForTransparencyLayer, const WebCore::LayoutRect & transparencyPaintDirtyRect, bool haveTransparency, const WebCore::RenderLayer::LayerPaintingInfo & localPaintingInfo, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRootForRenderer) Line 4815 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4431 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer *,0,WTF::CrashOnOverflow,16> * list, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4542 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4442 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer *,0,WTF::CrashOnOverflow,16> * list, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4542 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4442 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paint(WebCore::GraphicsContext & context, const WebCore::LayoutRect & damageRect, const WebCore::LayoutSize & subpixelOffset, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRoot, unsigned int paintFlags, WebCore::RenderLayer::SecurityOriginPaintPolicy paintPolicy) Line 3862 C++ > WebKit.dll!WebCore::FrameView::paintContents(WebCore::GraphicsContext & context, const WebCore::IntRect & dirtyRect, WebCore::Widget::SecurityOriginPaintPolicy securityOriginPaintPolicy) Line 4483 C++ > WebKit.dll!WebCore::ScrollView::paint(WebCore::GraphicsContext & context, const WebCore::IntRect & rect, WebCore::Widget::SecurityOriginPaintPolicy securityOriginPaintPolicy) Line 1200 C++ > WebKit.dll!WebCore::RenderWidget::paintContents(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 243 C++ > WebKit.dll!WebCore::RenderWidget::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 293 C++ > WebKit.dll!WebCore::RenderLayer::paintForegroundForFragmentsWithPhase(WebCore::PaintPhase phase, const WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & localPaintingInfo, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRootForRenderer) Line 4839 C++ > WebKit.dll!WebCore::RenderLayer::paintForegroundForFragments(const WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments, WebCore::GraphicsContext & context, WebCore::GraphicsContext & contextForTransparencyLayer, const WebCore::LayoutRect & transparencyPaintDirtyRect, bool haveTransparency, const WebCore::RenderLayer::LayerPaintingInfo & localPaintingInfo, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRootForRenderer) Line 4815 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4431 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer *,0,WTF::CrashOnOverflow,16> * list, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4542 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4442 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer *,0,WTF::CrashOnOverflow,16> * list, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4542 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4442 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paint(WebCore::GraphicsContext & context, const WebCore::LayoutRect & damageRect, const WebCore::LayoutSize & subpixelOffset, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRoot, unsigned int paintFlags, WebCore::RenderLayer::SecurityOriginPaintPolicy paintPolicy) Line 3862 C++ > WebKit.dll!WebCore::FrameView::paintContents(WebCore::GraphicsContext & context, const WebCore::IntRect & dirtyRect, WebCore::Widget::SecurityOriginPaintPolicy securityOriginPaintPolicy) Line 4483 C++ > WebKit.dll!WebCore::ScrollView::paint(WebCore::GraphicsContext & context, const WebCore::IntRect & rect, WebCore::Widget::SecurityOriginPaintPolicy securityOriginPaintPolicy) Line 1200 C++ > WebKit.dll!WebCore::RenderWidget::paintContents(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 243 C++ > WebKit.dll!WebCore::RenderWidget::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 293 C++ > WebKit.dll!WebCore::paintPhase(WebCore::RenderElement & element, WebCore::PaintPhase phase, WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & childPoint) Line 1214 C++ > WebKit.dll!WebCore::RenderElement::paintAsInlineBlock(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & childPoint) Line 1229 C++ > WebKit.dll!WebCore::InlineElementBox::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::LayoutUnit __formal, WebCore::LayoutUnit __formal) Line 92 C++ > WebKit.dll!WebCore::InlineFlowBox::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::LayoutUnit lineTop, WebCore::LayoutUnit lineBottom) Line 1231 C++ > WebKit.dll!WebCore::RootInlineBox::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::LayoutUnit lineTop, WebCore::LayoutUnit lineBottom) Line 177 C++ > WebKit.dll!WebCore::RenderLineBoxList::paint(WebCore::RenderBoxModelObject * renderer, WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 262 C++ > WebKit.dll!WebCore::RenderBlockFlow::paintInlineChildren(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 3621 C++ > WebKit.dll!WebCore::RenderBlock::paintContents(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1590 C++ > WebKit.dll!WebCore::RenderBlock::paintObject(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1748 C++ > WebKit.dll!WebCore::RenderBlock::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1569 C++ > WebKit.dll!WebCore::RenderBlock::paintChild(WebCore::RenderBox & child, WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::PaintInfo & paintInfoForChild, bool usePrintRect, WebCore::RenderBlock::PaintBlockType paintType) Line 1649 C++ > WebKit.dll!WebCore::RenderBlock::paintChildren(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::PaintInfo & paintInfoForChild, bool usePrintRect) Line 1609 C++ > WebKit.dll!WebCore::RenderBlock::paintContents(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1604 C++ > WebKit.dll!WebCore::RenderBlock::paintObject(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1748 C++ > WebKit.dll!WebCore::RenderBlock::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1569 C++ > WebKit.dll!WebCore::RenderLayer::paintForegroundForFragmentsWithPhase(WebCore::PaintPhase phase, const WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & localPaintingInfo, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRootForRenderer) Line 4839 C++ > WebKit.dll!WebCore::RenderLayer::paintForegroundForFragments(const WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments, WebCore::GraphicsContext & context, WebCore::GraphicsContext & contextForTransparencyLayer, const WebCore::LayoutRect & transparencyPaintDirtyRect, bool haveTransparency, const WebCore::RenderLayer::LayerPaintingInfo & localPaintingInfo, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRootForRenderer) Line 4815 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4431 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer *,0,WTF::CrashOnOverflow,16> * list, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4542 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4442 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paint(WebCore::GraphicsContext & context, const WebCore::LayoutRect & damageRect, const WebCore::LayoutSize & subpixelOffset, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRoot, unsigned int paintFlags, WebCore::RenderLayer::SecurityOriginPaintPolicy paintPolicy) Line 3862 C++ > WebKit.dll!WebCore::FrameView::paintContents(WebCore::GraphicsContext & context, const WebCore::IntRect & dirtyRect, WebCore::Widget::SecurityOriginPaintPolicy securityOriginPaintPolicy) Line 4483 C++ > WebKit.dll!WebCore::ScrollView::paint(WebCore::GraphicsContext & context, const WebCore::IntRect & rect, WebCore::Widget::SecurityOriginPaintPolicy securityOriginPaintPolicy) Line 1200 C++ > WebKit.dll!WebCore::RenderWidget::paintContents(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 243 C++ > WebKit.dll!WebCore::RenderWidget::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 293 C++ > WebKit.dll!WebCore::RenderLayer::paintForegroundForFragmentsWithPhase(WebCore::PaintPhase phase, const WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & localPaintingInfo, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRootForRenderer) Line 4839 C++ > WebKit.dll!WebCore::RenderLayer::paintForegroundForFragments(const WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments, WebCore::GraphicsContext & context, WebCore::GraphicsContext & contextForTransparencyLayer, const WebCore::LayoutRect & transparencyPaintDirtyRect, bool haveTransparency, const WebCore::RenderLayer::LayerPaintingInfo & localPaintingInfo, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRootForRenderer) Line 4815 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4431 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer *,0,WTF::CrashOnOverflow,16> * list, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4542 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4442 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer *,0,WTF::CrashOnOverflow,16> * list, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4542 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4442 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paint(WebCore::GraphicsContext & context, const WebCore::LayoutRect & damageRect, const WebCore::LayoutSize & subpixelOffset, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRoot, unsigned int paintFlags, WebCore::RenderLayer::SecurityOriginPaintPolicy paintPolicy) Line 3862 C++ > WebKit.dll!WebCore::FrameView::paintContents(WebCore::GraphicsContext & context, const WebCore::IntRect & dirtyRect, WebCore::Widget::SecurityOriginPaintPolicy securityOriginPaintPolicy) Line 4483 C++ > WebKit.dll!WebCore::ScrollView::paint(WebCore::GraphicsContext & context, const WebCore::IntRect & rect, WebCore::Widget::SecurityOriginPaintPolicy securityOriginPaintPolicy) Line 1200 C++ > WebKit.dll!WebCore::RenderWidget::paintContents(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 243 C++ > WebKit.dll!WebCore::RenderWidget::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 293 C++ > WebKit.dll!WebCore::paintPhase(WebCore::RenderElement & element, WebCore::PaintPhase phase, WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & childPoint) Line 1214 C++ > WebKit.dll!WebCore::RenderElement::paintAsInlineBlock(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & childPoint) Line 1229 C++ > WebKit.dll!WebCore::InlineElementBox::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::LayoutUnit __formal, WebCore::LayoutUnit __formal) Line 92 C++ > WebKit.dll!WebCore::InlineFlowBox::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::LayoutUnit lineTop, WebCore::LayoutUnit lineBottom) Line 1231 C++ > WebKit.dll!WebCore::RootInlineBox::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::LayoutUnit lineTop, WebCore::LayoutUnit lineBottom) Line 177 C++ > WebKit.dll!WebCore::RenderLineBoxList::paint(WebCore::RenderBoxModelObject * renderer, WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 262 C++ > WebKit.dll!WebCore::RenderBlockFlow::paintInlineChildren(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 3621 C++ > WebKit.dll!WebCore::RenderBlock::paintContents(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1590 C++ > WebKit.dll!WebCore::RenderBlock::paintObject(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1748 C++ > WebKit.dll!WebCore::RenderBlock::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1569 C++ > WebKit.dll!WebCore::RenderBlockFlow::paintFloats(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, bool preservePhase) Line 2281 C++ > WebKit.dll!WebCore::RenderBlock::paintObject(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1757 C++ > WebKit.dll!WebCore::RenderBlock::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1569 C++ > WebKit.dll!WebCore::RenderBlock::paintChild(WebCore::RenderBox & child, WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::PaintInfo & paintInfoForChild, bool usePrintRect, WebCore::RenderBlock::PaintBlockType paintType) Line 1649 C++ > WebKit.dll!WebCore::RenderBlock::paintChildren(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset, WebCore::PaintInfo & paintInfoForChild, bool usePrintRect) Line 1609 C++ > WebKit.dll!WebCore::RenderBlock::paintContents(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1604 C++ > WebKit.dll!WebCore::RenderBlock::paintObject(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1748 C++ > WebKit.dll!WebCore::RenderBlock::paint(WebCore::PaintInfo & paintInfo, const WebCore::LayoutPoint & paintOffset) Line 1569 C++ > WebKit.dll!WebCore::RenderLayer::paintForegroundForFragmentsWithPhase(WebCore::PaintPhase phase, const WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & localPaintingInfo, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRootForRenderer) Line 4839 C++ > WebKit.dll!WebCore::RenderLayer::paintForegroundForFragments(const WTF::Vector<WebCore::LayerFragment,1,WTF::CrashOnOverflow,16> & layerFragments, WebCore::GraphicsContext & context, WebCore::GraphicsContext & contextForTransparencyLayer, const WebCore::LayoutRect & transparencyPaintDirtyRect, bool haveTransparency, const WebCore::RenderLayer::LayerPaintingInfo & localPaintingInfo, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRootForRenderer) Line 4814 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4431 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer *,0,WTF::CrashOnOverflow,16> * list, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4542 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4442 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer *,0,WTF::CrashOnOverflow,16> * list, WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4542 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4442 C++ > WebKit.dll!WebCore::RenderLayer::paintLayerContentsAndReflection(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4072 C++ > WebKit.dll!WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext & context, const WebCore::RenderLayer::LayerPaintingInfo & paintingInfo, unsigned int paintFlags) Line 4054 C++ > WebKit.dll!WebCore::RenderLayer::paint(WebCore::GraphicsContext & context, const WebCore::LayoutRect & damageRect, const WebCore::LayoutSize & subpixelOffset, unsigned int paintBehavior, WebCore::RenderObject * subtreePaintRoot, unsigned int paintFlags, WebCore::RenderLayer::SecurityOriginPaintPolicy paintPolicy) Line 3862 C++ > WebKit.dll!WebCore::FrameView::paintContents(WebCore::GraphicsContext & context, const WebCore::IntRect & dirtyRect, WebCore::Widget::SecurityOriginPaintPolicy securityOriginPaintPolicy) Line 4483 C++ > WebKit.dll!WebCore::ScrollView::paint(WebCore::GraphicsContext & context, const WebCore::IntRect & rect, WebCore::Widget::SecurityOriginPaintPolicy securityOriginPaintPolicy) Line 1200 C++ > WebKit.dll!WebView::paintIntoBackingStore(WebCore::FrameView * frameView, HDC__ * bitmapDC, const WebCore::IntRect & dirtyRectPixels, WebView::WindowsToPaint windowsToPaint) Line 1424 C++ > WebKit.dll!WebView::updateBackingStore(WebCore::FrameView * frameView, HDC__ * dc, bool backingStoreCompletelyDirty, WebView::WindowsToPaint windowsToPaint) Line 1172 C++ > WebKit.dll!WebView::paint(HDC__ * dc, __int64 options) Line 1336 C++ > WebKit.dll!WebView::WebViewWndProc(HWND__ * hWnd, unsigned int message, unsigned __int64 wParam, __int64 lParam) Line 2571 C++ > [External Code] > WebKit.dll!WebKitMessageLoop::run(HACCEL__ * hAccelTable) Line 97 C++ > MiniBrowserLib.dll!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 189 C++ > MiniBrowserLib.dll!dllLauncherEntryPoint(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 857 C++ > MiniBrowser.exe!wWinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, wchar_t * lpstrCmdLine, int nCmdShow) Line 249 C++ > [External Code]
Attachments
big size animation gif (1000x1000, loop count:1)
(5.08 KB, image/gif)
2017-06-08 01:13 PDT
,
Fujii Hironori
no flags
Details
WIP patch
(1.65 KB, patch)
2017-06-08 01:26 PDT
,
Fujii Hironori
no flags
Details
Formatted Diff
Diff
Patch
(8.18 KB, patch)
2017-06-12 01:34 PDT
,
Fujii Hironori
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews100 for mac-elcapitan
(987.41 KB, application/zip)
2017-06-12 02:34 PDT
,
Build Bot
no flags
Details
Archive of layout-test-results from ews114 for mac-elcapitan
(1.74 MB, application/zip)
2017-06-12 02:53 PDT
,
Build Bot
no flags
Details
Patch
(8.22 KB, patch)
2017-06-12 03:22 PDT
,
Fujii Hironori
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews101 for mac-elcapitan
(1.08 MB, application/zip)
2017-06-12 04:05 PDT
,
Build Bot
no flags
Details
Archive of layout-test-results from ews114 for mac-elcapitan
(1.74 MB, application/zip)
2017-06-12 04:45 PDT
,
Build Bot
no flags
Details
Patch
(8.44 KB, patch)
2017-06-12 23:21 PDT
,
Fujii Hironori
no flags
Details
Formatted Diff
Diff
Patch
(8.47 KB, patch)
2017-06-13 19:30 PDT
,
Fujii Hironori
no flags
Details
Formatted Diff
Diff
Patch
(8.36 KB, patch)
2017-06-27 22:37 PDT
,
Fujii Hironori
no flags
Details
Formatted Diff
Diff
Patch
(8.55 KB, patch)
2017-06-28 22:26 PDT
,
Fujii Hironori
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews117 for mac-elcapitan
(1.75 MB, application/zip)
2017-06-28 23:54 PDT
,
Build Bot
no flags
Details
Archive of layout-test-results from ews103 for mac-elcapitan
(995.83 KB, application/zip)
2017-06-29 12:18 PDT
,
Build Bot
no flags
Details
Patch
(8.41 KB, patch)
2017-06-29 22:28 PDT
,
Fujii Hironori
no flags
Details
Formatted Diff
Diff
Archive of layout-test-results from ews107 for mac-elcapitan-wk2
(1.18 MB, application/zip)
2017-06-29 23:32 PDT
,
Build Bot
no flags
Details
Show Obsolete
(14)
View All
Add attachment
proposed patch, testcase, etc.
Fujii Hironori
Comment 1
2017-06-07 23:35:05 PDT
I saw this again by reloading
http://www.nicovideo.jp/
again and again.
http://ads.nicovideo.jp/assets/images/06/065300e6d96bcb502826d5b4c3f72f70.gif
is the image url.
Fujii Hironori
Comment 2
2017-06-08 01:13:49 PDT
Created
attachment 312284
[details]
big size animation gif (1000x1000, loop count:1) This happens always when painting a big finished animation GIF image.
> bool ImageSource::shouldUseAsyncDecoding() > { > if (!isDecoderAvailable()) > return false; > // FIXME: figure out the best heuristic for enabling async image decoding. > return size().area() * sizeof(RGBA32) >= (frameCount() > 1 ? 100 * KB : 500 * KB); > }
Fujii Hironori
Comment 3
2017-06-08 01:26:12 PDT
Created
attachment 312286
[details]
WIP patch
Fujii Hironori
Comment 4
2017-06-12 01:34:18 PDT
Created
attachment 312639
[details]
Patch
Build Bot
Comment 5
2017-06-12 02:34:13 PDT
Comment on
attachment 312639
[details]
Patch
Attachment 312639
[details]
did not pass mac-ews (mac): Output:
http://webkit-queues.webkit.org/results/3916346
New failing tests: fast/images/animated-gif-paint-after-animation.html
Build Bot
Comment 6
2017-06-12 02:34:15 PDT
Created
attachment 312643
[details]
Archive of layout-test-results from ews100 for mac-elcapitan The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews100 Port: mac-elcapitan Platform: Mac OS X 10.11.6
Build Bot
Comment 7
2017-06-12 02:53:41 PDT
Comment on
attachment 312639
[details]
Patch
Attachment 312639
[details]
did not pass mac-debug-ews (mac): Output:
http://webkit-queues.webkit.org/results/3916358
New failing tests: fast/images/animated-gif-paint-after-animation.html
Build Bot
Comment 8
2017-06-12 02:53:42 PDT
Created
attachment 312644
[details]
Archive of layout-test-results from ews114 for mac-elcapitan The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews114 Port: mac-elcapitan Platform: Mac OS X 10.11.6
Fujii Hironori
Comment 9
2017-06-12 03:22:22 PDT
Created
attachment 312648
[details]
Patch
Build Bot
Comment 10
2017-06-12 04:05:41 PDT
Comment on
attachment 312648
[details]
Patch
Attachment 312648
[details]
did not pass mac-ews (mac): Output:
http://webkit-queues.webkit.org/results/3916694
New failing tests: fast/images/animated-gif-paint-after-animation.html
Build Bot
Comment 11
2017-06-12 04:05:42 PDT
Created
attachment 312650
[details]
Archive of layout-test-results from ews101 for mac-elcapitan The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews101 Port: mac-elcapitan Platform: Mac OS X 10.11.6
Build Bot
Comment 12
2017-06-12 04:45:02 PDT
Comment on
attachment 312648
[details]
Patch
Attachment 312648
[details]
did not pass mac-debug-ews (mac): Output:
http://webkit-queues.webkit.org/results/3916752
New failing tests: fast/images/animated-gif-paint-after-animation.html
Build Bot
Comment 13
2017-06-12 04:45:04 PDT
Created
attachment 312652
[details]
Archive of layout-test-results from ews114 for mac-elcapitan The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews114 Port: mac-elcapitan Platform: Mac OS X 10.11.6
Fujii Hironori
Comment 14
2017-06-12 21:00:44 PDT
What's happening in mac and mac-debug EWS? There is a comment in TestExpectations of mac-wk1:
https://trac.webkit.org/browser/webkit/trunk/LayoutTests/platform/mac-wk1/TestExpectations?rev=217880#L123
> # Animated image throttling behaves differently on WK1. > fast/images/animated-gif-body-outside-viewport.html [ Skip ] > fast/images/animated-gif-window-resizing.html [ Skip ] > fast/images/animated-gif-zooming.html [ Skip ]
Fujii Hironori
Comment 15
2017-06-12 23:18:41 PDT
I need to do the following trick as other test cases do.
> // Force layout and display so the image frame starts decoding. > document.body.offsetHeight; > testRunner.display();
Fujii Hironori
Comment 16
2017-06-12 23:21:21 PDT
Created
attachment 312753
[details]
Patch
Fujii Hironori
Comment 17
2017-06-13 19:30:45 PDT
Created
attachment 312847
[details]
Patch
Fujii Hironori
Comment 18
2017-06-14 16:50:22 PDT
Could you review, Said?
Fujii Hironori
Comment 19
2017-06-26 18:54:50 PDT
Could anyone review my patch?
Said Abou-Hallawa
Comment 20
2017-06-27 20:40:25 PDT
Comment on
attachment 312847
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=312847&action=review
> Source/WebCore/ChangeLog:8 > + Test: fast/images/animated-gif-paint-after-animation.html
Please move this line after the comment below.
> Source/WebCore/platform/graphics/BitmapImage.cpp:-191 > - ASSERT(!canAnimate() && !m_currentFrame);
You can use: ASSERT(!canAnimate() && (!m_currentFrame || m_animationFinished));
> LayoutTests/fast/images/animated-gif-paint-after-animation.html:12 > + window.onload = function() {
Instead of listening to the onload event you can move all the script at the end of <body> tag.
> LayoutTests/fast/images/animated-gif-paint-after-animation.html:15 > + img.src = 'resources/animated-red-green-blue-1000x1000-repeat-1.gif';
Usually setting the image source comes after defining the onload function: img.onload = function() { .... } img.src = "...".
> LayoutTests/fast/images/animated-gif-paint-after-animation.html:25 > + window.setTimeout(function() { > + testRunner.notifyDone(); > + }, 500);
Instead of using the css animation and the setTimeout(), I think this can be replaced by the following: // Force the page to be displayed. The image element is already invalidated when the frame finished decoding. testRunner.display(); // Change the width of the img element img.width = "100" // Force a final layout and display so the image last frame is drawn. document.body.offsetHeight; testRunner.display(); testRunner.notifyDone();
> LayoutTests/fast/images/animated-gif-paint-after-animation.html:34 > + @keyframes n { > + from { width : 10px; } > + to { width: 20px; } > + }
Why do you need to add this animation? I think you want to force a last redraw after the last frame is drawn. You can change the width of the element manually after receiving the webkitImageFrameReady event; see above.
> LayoutTests/fast/images/animated-gif-paint-after-animation.html:36 > + display: block;
Is setting the display to "block" really needed for the test?
Fujii Hironori
Comment 21
2017-06-27 21:34:48 PDT
Comment on
attachment 312847
[details]
Patch Thank you very much, Said. I'll revise the patch.
Fujii Hironori
Comment 22
2017-06-27 22:37:34 PDT
Created
attachment 313992
[details]
Patch
Said Abou-Hallawa
Comment 23
2017-06-28 11:39:56 PDT
Comment on
attachment 313992
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=313992&action=review
> LayoutTests/fast/images/animated-gif-paint-after-animation.html:31 > + window.setTimeout(function() { > + // Force a final layout and display so the image last frame is drawn. > + img.width = "100"; > + if (window.testRunner) > + testRunner.notifyDone(); > + }, 500);
Using the setTimeout() makes the test non deterministic. There is no guarantee here that the image will draw its last frame twice in 500ms. Also the 500ms is way too long period to wait for. As I said earlier, you can control the layout and display yourself so you can know exactly when the test should end: // Force the page to be displayed. The image element is already invalidated when the frame finished decoding. testRunner.display(); // Change the width of the img element img.width = "100"; // notifyDone() will force the last layout and display. testRunner.notifyDone();
Fujii Hironori
Comment 24
2017-06-28 22:26:30 PDT
Thank you for the review. It needs to wait at least 30ms for finishing the animation. I've found the way without setTimeout by counting decoded frames.
Fujii Hironori
Comment 25
2017-06-28 22:26:56 PDT
Created
attachment 314113
[details]
Patch
Build Bot
Comment 26
2017-06-28 23:54:10 PDT
Comment on
attachment 314113
[details]
Patch
Attachment 314113
[details]
did not pass mac-debug-ews (mac): Output:
http://webkit-queues.webkit.org/results/4018364
New failing tests: fast/images/animated-gif-paint-after-animation.html
Build Bot
Comment 27
2017-06-28 23:54:12 PDT
Created
attachment 314119
[details]
Archive of layout-test-results from ews117 for mac-elcapitan The attached test failures were seen while running run-webkit-tests on the mac-debug-ews. Bot: ews117 Port: mac-elcapitan Platform: Mac OS X 10.11.6
Build Bot
Comment 28
2017-06-29 12:18:37 PDT
Comment on
attachment 314113
[details]
Patch
Attachment 314113
[details]
did not pass mac-ews (mac): Output:
http://webkit-queues.webkit.org/results/4020855
New failing tests: fast/images/animated-gif-paint-after-animation.html
Build Bot
Comment 29
2017-06-29 12:18:38 PDT
Created
attachment 314150
[details]
Archive of layout-test-results from ews103 for mac-elcapitan The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews103 Port: mac-elcapitan Platform: Mac OS X 10.11.6
Said Abou-Hallawa
Comment 30
2017-06-29 13:27:13 PDT
(In reply to Fujii Hironori from
comment #24
)
> Thank you for the review. > It needs to wait at least 30ms for finishing the animation. > I've found the way without setTimeout by counting decoded frames.
I was assuming your animated image has only two frames. Just delete the last frame of the image and have it only contain two frames: red and green. Then your code should be simpler img.addEventListener("webkitImageFrameReady", function() { // Force the page to be displayed. The image element is already invalidated when the frame finished decoding. if (window.testRunner) testRunner.display(); // Change the width of the img element img.width = "100"; // notifyDone() will force the last layout and display. if (window.testRunner) testRunner.notifyDone(); }); img.src = 'resources/animated-red-green-1000x1000-repeat-1.gif'; Also make sure the test asserts without your patch.
Said Abou-Hallawa
Comment 31
2017-06-29 13:45:03 PDT
(In reply to Build Bot from
comment #29
)
> Created
attachment 314150
[details]
> Archive of layout-test-results from ews103 for mac-elcapitan > > The attached test failures were seen while running run-webkit-tests on the > mac-ews. > Bot: ews103 Port: mac-elcapitan Platform: Mac OS X 10.11.6
The test is timing out because DRT does not force drawing when a repaint happens. Instead DRT waits for notifyDone() to do the last draw. Your code relies on having the event webkitImageFrameReady is called two times and the image is drawn four times: 1st time: draws frame 0 and request frame 1 for decoding. 2nd time: draws frame 1 and request frame 2 for decoding. 3nd time: draws frame 2. 4th time: draws frame 2. Only the first draw happens because onload calls testRunner.display(). The second and the third draws do not happen because webkitImageFrameReady callback returns when count != 2. And webkitImageFrameReady can't fire unless a draw happens. The fourth time does not happen because testRunner.notifyDone() is not called. Changing the image to have two frames only and changing the webkitImageFrameReady callback as I mentioned above should draw the image three times and testRunner.notifyDone() is guaranteed to be called.
Fujii Hironori
Comment 32
2017-06-29 21:22:17 PDT
How to create an animation gif with ImageMagick convert -size 1000x1000 xc:red red.png convert -size 1000x1000 xc:green green.png convert -delay 1 -loop 1 red.png green.png animated-red-green-1000x1000-repeat-1.gif
Fujii Hironori
Comment 33
2017-06-29 22:28:10 PDT
Created
attachment 314235
[details]
Patch
Simon Fraser (smfr)
Comment 34
2017-06-29 22:51:52 PDT
I hit this assertion on macOS today.
Build Bot
Comment 35
2017-06-29 23:32:19 PDT
Comment on
attachment 314235
[details]
Patch
Attachment 314235
[details]
did not pass mac-wk2-ews (mac-wk2): Output:
http://webkit-queues.webkit.org/results/4024594
New failing tests: fast/workers/worker-exception-during-navigation.html
Build Bot
Comment 36
2017-06-29 23:32:21 PDT
Created
attachment 314239
[details]
Archive of layout-test-results from ews107 for mac-elcapitan-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews107 Port: mac-elcapitan-wk2 Platform: Mac OS X 10.11.6
Fujii Hironori
Comment 37
2017-06-30 00:17:27 PDT
Comment on
attachment 314239
[details]
Archive of layout-test-results from ews107 for mac-elcapitan-wk2 (In reply to Build Bot from
comment #35
)
>
Attachment 314235
[details]
did not pass mac-wk2-ews (mac-wk2): > Output:
http://webkit-queues.webkit.org/results/4024594
> New failing tests: > fast/workers/worker-exception-during-navigation.html
This EWS failure seems
Bug 102131
.
WebKit Commit Bot
Comment 38
2017-06-30 10:28:24 PDT
Comment on
attachment 314235
[details]
Patch Clearing flags on attachment: 314235 Committed
r219003
: <
http://trac.webkit.org/changeset/219003
>
WebKit Commit Bot
Comment 39
2017-06-30 10:28:26 PDT
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug