[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

senorblanco at chromium.org senorblanco at chromium.org
Thu Oct 29 20:33:47 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit e6b1658d41befeb147d56c736b70cf10ec8baf73
Author: senorblanco at chromium.org <senorblanco at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Sep 24 18:51:53 2009 +0000

    Fix for https://bugs.webkit.org/show_bug.cgi?id=29696 ([CHROMIUM] Paths fail to render in SVG with large viewbox)
    
    Revert the relevant parts of r47925, and implement an alternate
    fix (localize the coordinate check to GraphicsContext::clipPath()).
    See http://crbug.com/21174.
    
    Reviewed by Eric Seidel.
    
    Covered by LayoutTests/svg/dynamic-updates/SVGClipPathElement-dom-clipPathUnits-attr.html.
    
    * platform/graphics/skia/GraphicsContextSkia.cpp:
    (WebCore::GraphicsContext::clipPath):
    * platform/graphics/skia/PlatformContextSkia.cpp:
    (PlatformContextSkia::currentPathInLocalCoordinates):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48726 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index cfb29a2..31689fa 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2009-09-23  Stephen White  <senorblanco at chromium.org>
+
+        Reviewed by Eric Seidel.
+
+        Revert the relevant parts of r47925, and implement an alternate
+        fix (localize the coordinate check to GraphicsContext::clipPath()).
+        This fixes http://crbug.com/21174.
+
+        Covered by LayoutTests/svg/dynamic-updates/SVGClipPathElement-dom-clipPathUnits-attr.html.
+
+        * platform/graphics/skia/GraphicsContextSkia.cpp:
+        (WebCore::GraphicsContext::clipPath):
+        * platform/graphics/skia/PlatformContextSkia.cpp:
+        (PlatformContextSkia::currentPathInLocalCoordinates):
+
 2009-09-24  Brady Eidson  <beidson at apple.com>
 
         Reviewed by Sam Weinig.
diff --git a/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp b/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp
index 59174a7..c9f1349 100644
--- a/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp
+++ b/WebCore/platform/graphics/skia/GraphicsContextSkia.cpp
@@ -403,6 +403,9 @@ void GraphicsContext::clipPath(WindRule clipRule)
         return;
 
     SkPath path = platformContext()->currentPathInLocalCoordinates();
+    if (!isPathSkiaSafe(getCTM(), path))
+        return;
+
     path.setFillType(clipRule == RULE_EVENODD ? SkPath::kEvenOdd_FillType : SkPath::kWinding_FillType);
     platformContext()->canvas()->clipPath(path);
 }
diff --git a/WebCore/platform/graphics/skia/PlatformContextSkia.cpp b/WebCore/platform/graphics/skia/PlatformContextSkia.cpp
index b949dad..1fb62fc 100644
--- a/WebCore/platform/graphics/skia/PlatformContextSkia.cpp
+++ b/WebCore/platform/graphics/skia/PlatformContextSkia.cpp
@@ -492,13 +492,11 @@ void PlatformContextSkia::addPath(const SkPath& path)
 
 SkPath PlatformContextSkia::currentPathInLocalCoordinates() const
 {
+    SkPath localPath = m_path;
     const SkMatrix& matrix = m_canvas->getTotalMatrix();
     SkMatrix inverseMatrix;
     if (!matrix.invert(&inverseMatrix))
         return SkPath();
-    if (!WebCore::isPathSkiaSafe(inverseMatrix, m_path))
-        return SkPath();
-    SkPath localPath = m_path;
     localPath.transform(inverseMatrix);
     return localPath;
 }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list