Bug 23030: Cannot setTransform with a non-invertible ctm
[WebKit-https.git] / WebCore / html / CanvasRenderingContext2D.cpp
index 5a1f3d0..8dda6c9 100644 (file)
@@ -153,8 +153,6 @@ void CanvasRenderingContext2D::setStrokeStyle(PassRefPtr<CanvasStyle> style)
     GraphicsContext* c = drawingContext();
     if (!c)
         return;
-    if (!state().m_invertibleCTM)
-        return;
     state().m_strokeStyle->applyStrokeColor(c);
 }
 
@@ -179,8 +177,6 @@ void CanvasRenderingContext2D::setFillStyle(PassRefPtr<CanvasStyle> style)
     GraphicsContext* c = drawingContext();
     if (!c)
         return;
-    if (!state().m_invertibleCTM)
-        return;
     state().m_fillStyle->applyFillColor(c);
 }
 
@@ -420,8 +416,6 @@ void CanvasRenderingContext2D::setTransform(float m11, float m12, float m21, flo
     GraphicsContext* c = drawingContext();
     if (!c)
         return;
-    if (!state().m_invertibleCTM)
-        return;
     
     // HTML5 3.14.11.1 -- ignore any calls that pass non-finite numbers
     if (!isfinite(m11) | !isfinite(m21) | !isfinite(dx) | 
@@ -436,6 +430,7 @@ void CanvasRenderingContext2D::setTransform(float m11, float m12, float m21, flo
     state().m_transform.multiply(ctm.inverse());
     m_path.transform(ctm);
 
+    state().m_invertibleCTM = true;
     transform(m11, m12, m21, m22, dx, dy);
 }
 
@@ -501,15 +496,11 @@ void CanvasRenderingContext2D::setFillColor(float c, float m, float y, float k,
 
 void CanvasRenderingContext2D::beginPath()
 {
-    if (!state().m_invertibleCTM)
-        return;
     m_path.clear();
 }
 
 void CanvasRenderingContext2D::closePath()
 {
-    if (!state().m_invertibleCTM)
-        return;
     m_path.closeSubpath();
 }