Title: [220828] releases/WebKitGTK/webkit-2.18
Revision
220828
Author
carlo...@webkit.org
Date
2017-08-16 23:11:21 -0700 (Wed, 16 Aug 2017)

Log Message

Merge r220717 - The none smooth stroke applied to an SVG shape breaks its hit testing
https://bugs.webkit.org/show_bug.cgi?id=175506

Patch by Said Abou-Hallawa <sabouhall...@apple.com> on 2017-08-14
Reviewed by Simon Fraser.

Source/WebCore:

Clear RenderSVGShape::m_path when calling RenderSVGRect::updateShapeFromElement().
The m_path will be recalculated when RenderSVGShape::updateShapeFromElement()
is called from RenderSVGRect::shapeDependentStrokeContains().

Test: svg/stroke/stroke-linejoin-click.html

* rendering/svg/RenderSVGRect.cpp:
(WebCore::RenderSVGRect::updateShapeFromElement):
* rendering/svg/RenderSVGShape.h:
(WebCore::RenderSVGShape::clearPath):

LayoutTests:

* svg/stroke/stroke-linejoin-click-expected.html: Added.
* svg/stroke/stroke-linejoin-click.html: Added.

Modified Paths

Added Paths

Diff

Modified: releases/WebKitGTK/webkit-2.18/LayoutTests/ChangeLog (220827 => 220828)


--- releases/WebKitGTK/webkit-2.18/LayoutTests/ChangeLog	2017-08-17 06:08:47 UTC (rev 220827)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/ChangeLog	2017-08-17 06:11:21 UTC (rev 220828)
@@ -1,3 +1,13 @@
+2017-08-14  Said Abou-Hallawa  <sabouhall...@apple.com>
+
+        The none smooth stroke applied to an SVG shape breaks its hit testing
+        https://bugs.webkit.org/show_bug.cgi?id=175506
+
+        Reviewed by Simon Fraser.
+
+        * svg/stroke/stroke-linejoin-click-expected.html: Added.
+        * svg/stroke/stroke-linejoin-click.html: Added.
+
 2017-08-14  Zan Dobersek  <zdober...@igalia.com>
 
         REGRESSION(r220517-r220521) [GTK] Various compositing tests fail

Added: releases/WebKitGTK/webkit-2.18/LayoutTests/svg/stroke/stroke-linejoin-click-expected.html (0 => 220828)


--- releases/WebKitGTK/webkit-2.18/LayoutTests/svg/stroke/stroke-linejoin-click-expected.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/svg/stroke/stroke-linejoin-click-expected.html	2017-08-17 06:11:21 UTC (rev 220828)
@@ -0,0 +1,19 @@
+<style>
+    html, body {
+        margin: 0;
+        padding: 0;
+    }
+    rect {
+        fill: none;
+        stroke-width: 6;
+        stroke-linejoin: round;
+        stroke: green;
+        width: 100px;
+        height: 100px;
+    }
+</style>
+<body>
+    <svg>
+        <rect x="30" y="30"/>
+    </svg>
+</body>

Added: releases/WebKitGTK/webkit-2.18/LayoutTests/svg/stroke/stroke-linejoin-click.html (0 => 220828)


--- releases/WebKitGTK/webkit-2.18/LayoutTests/svg/stroke/stroke-linejoin-click.html	                        (rev 0)
+++ releases/WebKitGTK/webkit-2.18/LayoutTests/svg/stroke/stroke-linejoin-click.html	2017-08-17 06:11:21 UTC (rev 220828)
@@ -0,0 +1,37 @@
+<style>
+    html, body {
+        margin: 0;
+        padding: 0;
+    }
+    rect {
+        fill: none;
+        stroke-width: 6;
+        stroke-linejoin: round;
+        stroke: green;
+        width: 100px;
+        height: 100px;
+    }
+</style>
+<body>
+    <svg>
+        <rect x="10" y="10"/>
+    </svg>
+    <script>
+        function moveRect(rect) {
+            var x = parseFloat(rect.getAttribute("x"));
+            var y = parseFloat(rect.getAttribute("y"));
+            rect.setAttribute('x', x + 10);
+            rect.setAttribute('y', y + 10);
+        }
+
+        (function() {
+            var element = document.elementFromPoint(10, 10);
+            if (element instanceof SVGRectElement)
+                moveRect(element);
+
+            element = document.elementFromPoint(20, 20);
+            if (element instanceof SVGRectElement)
+                moveRect(element);
+        })();
+    </script>
+</body>

Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog (220827 => 220828)


--- releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog	2017-08-17 06:08:47 UTC (rev 220827)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/ChangeLog	2017-08-17 06:11:21 UTC (rev 220828)
@@ -1,3 +1,21 @@
+2017-08-14  Said Abou-Hallawa  <sabouhall...@apple.com>
+
+        The none smooth stroke applied to an SVG shape breaks its hit testing
+        https://bugs.webkit.org/show_bug.cgi?id=175506
+
+        Reviewed by Simon Fraser.
+
+        Clear RenderSVGShape::m_path when calling RenderSVGRect::updateShapeFromElement().
+        The m_path will be recalculated when RenderSVGShape::updateShapeFromElement()
+        is called from RenderSVGRect::shapeDependentStrokeContains().
+
+        Test: svg/stroke/stroke-linejoin-click.html
+
+        * rendering/svg/RenderSVGRect.cpp:
+        (WebCore::RenderSVGRect::updateShapeFromElement):
+        * rendering/svg/RenderSVGShape.h:
+        (WebCore::RenderSVGShape::clearPath):
+
 2017-08-10  Zan Dobersek  <zdober...@igalia.com>
 
         Unreviewed GTK+ build fix for ENABLE_GLES2=ON.

Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/rendering/svg/RenderSVGRect.cpp (220827 => 220828)


--- releases/WebKitGTK/webkit-2.18/Source/WebCore/rendering/svg/RenderSVGRect.cpp	2017-08-17 06:08:47 UTC (rev 220827)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/rendering/svg/RenderSVGRect.cpp	2017-08-17 06:11:21 UTC (rev 220828)
@@ -52,6 +52,7 @@
     m_fillBoundingBox = FloatRect();
     m_innerStrokeRect = FloatRect();
     m_outerStrokeRect = FloatRect();
+    clearPath();
 
     SVGLengthContext lengthContext(&rectElement());
     FloatSize boundingBoxSize(lengthContext.valueForLength(style().width(), LengthModeWidth), lengthContext.valueForLength(style().height(), LengthModeHeight));

Modified: releases/WebKitGTK/webkit-2.18/Source/WebCore/rendering/svg/RenderSVGShape.h (220827 => 220828)


--- releases/WebKitGTK/webkit-2.18/Source/WebCore/rendering/svg/RenderSVGShape.h	2017-08-17 06:08:47 UTC (rev 220827)
+++ releases/WebKitGTK/webkit-2.18/Source/WebCore/rendering/svg/RenderSVGShape.h	2017-08-17 06:11:21 UTC (rev 220828)
@@ -63,6 +63,7 @@
         ASSERT(m_path);
         return *m_path;
     }
+    void clearPath() { m_path = nullptr; }
 
 protected:
     void element() const = delete;
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to