Index: Source/core/html/canvas/CanvasRenderingContext2D.cpp |
diff --git a/Source/core/html/canvas/CanvasRenderingContext2D.cpp b/Source/core/html/canvas/CanvasRenderingContext2D.cpp |
index 2643b2707c497d700f66fffd3cfa9ce284147c83..ce3d9c2917371fc51dcad983cd01fa94086f0259 100644 |
--- a/Source/core/html/canvas/CanvasRenderingContext2D.cpp |
+++ b/Source/core/html/canvas/CanvasRenderingContext2D.cpp |
@@ -1294,9 +1294,10 @@ void CanvasRenderingContext2D::drawImage(ImageBitmap* bitmap, |
FloatRect intersectRect = intersection(bitmapRect, normalizedSrcRect); |
FloatRect actualSrcRect(intersectRect); |
- actualSrcRect.move(-bitmapRect.x(), -bitmapRect.y()); |
- FloatRect imageRect = FloatRect(FloatPoint(), bitmapRect.size()); |
+ IntPoint bitmapOffset = bitmap->bitmapOffset(); |
+ actualSrcRect.move(bitmapOffset - bitmapRect.location()); |
+ FloatRect imageRect = FloatRect(bitmapOffset, bitmapRect.size()); |
FloatRect actualDstRect(FloatPoint(intersectRect.location() - normalizedSrcRect.location()), bitmapRect.size()); |
actualDstRect.scale(normalizedDstRect.width() / normalizedSrcRect.width() * intersectRect.width() / bitmapRect.width(), |