REGRESSION(r91628): 3 canvas tests crash on Chromium Linux and one test fail on Chromium Mac
https://bugs.webkit.org/show_bug.cgi?id=65063
Reviewed by Darin Fisher.
Fixes crashes due to a bad cast from Image to BitmapImage on skia ports
that use BitmapImageSingleFrameSkia. In the skia port
Image::isBitmapImage() returning true does not necessarily mean that
Image is of type BitmapImage.
Covered by fast/canvas/canvas-as-image.html and many other canvas
tests.
Patch originally by Tom Hudson.
* platform/graphics/BitmapImage.h:
(WebCore::BitmapImage::currentFrameHasAlpha):
(WebCore::BitmapImage::notSolidColor):
* platform/graphics/Image.cpp:
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
(WebCore::Image::currentFrameHasAlpha):
(WebCore::Image::notSolidColor):
* platform/graphics/skia/BitmapImageSingleFrameSkia.h:
(WebCore::BitmapImageSingleFrameSkia::currentFrameHasAlpha):
(WebCore::BitmapImageSingleFrameSkia::notSolidColor):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::backgroundIsObscured):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@93441 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/rendering/RenderImage.cpp b/Source/WebCore/rendering/RenderImage.cpp
index 7022cda..7ec53cf 100644
--- a/Source/WebCore/rendering/RenderImage.cpp
+++ b/Source/WebCore/rendering/RenderImage.cpp
@@ -408,13 +408,9 @@
// Check for bitmap image with alpha.
Image* image = m_imageResource->image().get();
- if (!image || !image->isBitmapImage())
+ if (!image || !image->isBitmapImage() || image->currentFrameHasAlpha())
return false;
- BitmapImage* bitmapImage = static_cast<BitmapImage*>(image);
- if (bitmapImage->currentFrameHasAlpha())
- return false;
-
return true;
}