Title: [214787] trunk
Revision
214787
Author
pvol...@apple.com
Date
2017-04-03 06:17:11 -0700 (Mon, 03 Apr 2017)

Log Message

Implement stroke-miterlimit.
https://bugs.webkit.org/show_bug.cgi?id=169078

Reviewed by Dean Jackson.

Source/WebCore:

Support stroke-miterlimit for text rendering, see https://drafts.fxtf.org/paint/.

Tests: fast/css/stroke-miterlimit-default.html
       fast/css/stroke-miterlimit-large.html
       fast/css/stroke-miterlimit-zero.html

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSProperties.json:
* css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::svgPropertyValue):
* rendering/TextPaintStyle.cpp:
(WebCore::computeTextPaintStyle):
(WebCore::updateGraphicsContext):
* rendering/TextPaintStyle.h:
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::strokeMiterLimit):
(WebCore::RenderStyle::setStrokeMiterLimit):
(WebCore::RenderStyle::initialStrokeMiterLimit):
(WebCore::RenderStyle::setStrokeDashOffset):
* rendering/style/RenderStyleConstants.cpp:
* rendering/style/RenderStyleConstants.h:
* rendering/style/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::diff):
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::initialStrokeDashArray):
(WebCore::SVGRenderStyle::strokeDashArray):
(WebCore::SVGRenderStyle::initialStrokeMiterLimit): Deleted.
(WebCore::SVGRenderStyle::strokeMiterLimit): Deleted.
(WebCore::SVGRenderStyle::setStrokeMiterLimit): Deleted.
* rendering/style/SVGRenderStyleDefs.cpp:
(WebCore::StyleStrokeData::StyleStrokeData):
(WebCore::StyleStrokeData::operator==):
* rendering/style/SVGRenderStyleDefs.h:
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h:
* rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::hasSmoothStroke):
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::applyStrokeStyleToContext):
* rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeStyle):

LayoutTests:

* fast/css/stroke-miterlimit-default-expected.html: Added.
* fast/css/stroke-miterlimit-default.html: Added.
* fast/css/stroke-miterlimit-large-expected-mismatch.html: Added.
* fast/css/stroke-miterlimit-large.html: Added.
* fast/css/stroke-miterlimit-zero-expected-mismatch.html: Added.
* fast/css/stroke-miterlimit-zero.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (214786 => 214787)


--- trunk/LayoutTests/ChangeLog	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/LayoutTests/ChangeLog	2017-04-03 13:17:11 UTC (rev 214787)
@@ -1,3 +1,17 @@
+2017-04-03  Per Arne Vollan  <pvol...@apple.com>
+
+        Implement stroke-miterlimit.
+        https://bugs.webkit.org/show_bug.cgi?id=169078
+
+        Reviewed by Dean Jackson.
+
+        * fast/css/stroke-miterlimit-default-expected.html: Added.
+        * fast/css/stroke-miterlimit-default.html: Added.
+        * fast/css/stroke-miterlimit-large-expected-mismatch.html: Added.
+        * fast/css/stroke-miterlimit-large.html: Added.
+        * fast/css/stroke-miterlimit-zero-expected-mismatch.html: Added.
+        * fast/css/stroke-miterlimit-zero.html: Added.
+
 2017-04-02  Alexey Proskuryakov  <a...@apple.com>
 
         Remove accidentally added DumpJSConsoleLogInStdErr from http/tests/fetch/fetch-in-worker-crash.html expectation.

Added: trunk/LayoutTests/fast/css/stroke-miterlimit-default-expected.html (0 => 214787)


--- trunk/LayoutTests/fast/css/stroke-miterlimit-default-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css/stroke-miterlimit-default-expected.html	2017-04-03 13:17:11 UTC (rev 214787)
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+    <style>
+        div {
+            font-size: 200px;
+            color: gray;
+        }
+
+        .test-stroke {
+            text-shadow: none;
+            -webkit-text-stroke: 30px red;
+        }
+    </style>
+</head>
+<body>
+
+<div class="test-stroke">Miter</div>
+
+</body>
+</html>

Added: trunk/LayoutTests/fast/css/stroke-miterlimit-default.html (0 => 214787)


--- trunk/LayoutTests/fast/css/stroke-miterlimit-default.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css/stroke-miterlimit-default.html	2017-04-03 13:17:11 UTC (rev 214787)
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+    <style>
+        div {
+            font-size: 200px;
+            color: gray;
+        }
+
+        .test-stroke {
+            text-shadow: none;
+            -webkit-text-stroke: 30px red;
+        }
+    </style>
+</head>
+<body>
+
+<div class="test-stroke" style="stroke-miterlimit: 4;">Miter</div>
+
+</body>
+</html>

Added: trunk/LayoutTests/fast/css/stroke-miterlimit-large-expected-mismatch.html (0 => 214787)


--- trunk/LayoutTests/fast/css/stroke-miterlimit-large-expected-mismatch.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css/stroke-miterlimit-large-expected-mismatch.html	2017-04-03 13:17:11 UTC (rev 214787)
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+    <style>
+        div {
+            position: absolute;
+            font-size: 200px;
+            color: gray;
+        }
+
+        .test-stroke {
+            text-shadow: none;
+            -webkit-text-stroke: 30px red;
+        }
+    
+        .obscurer {
+            width: 600px;
+            height: 200px;
+            background-color: blue;
+        }
+    </style>
+</head>
+<body>
+
+<div class="test-stroke" style="stroke-miterlimit: 4;">Miter</div>
+<div class="obscurer" style="left: 0px; top: 20px;"></div>
+
+</body>
+</html>

Added: trunk/LayoutTests/fast/css/stroke-miterlimit-large.html (0 => 214787)


--- trunk/LayoutTests/fast/css/stroke-miterlimit-large.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css/stroke-miterlimit-large.html	2017-04-03 13:17:11 UTC (rev 214787)
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+    <style>
+        div {
+            position: absolute;
+            font-size: 200px;
+            color: gray;
+        }
+
+        .test-stroke {
+            text-shadow: none;
+            -webkit-text-stroke: 30px red;
+        }
+    
+        .obscurer {
+            width: 600px;
+            height: 200px;
+            background-color: blue;
+        }
+    </style>
+</head>
+<body>
+
+<div class="test-stroke" style="stroke-miterlimit: 10;">Miter</div>
+<div class="obscurer" style="left: 0px; top: 20px;"></div>
+
+</body>
+</html>

Added: trunk/LayoutTests/fast/css/stroke-miterlimit-zero-expected-mismatch.html (0 => 214787)


--- trunk/LayoutTests/fast/css/stroke-miterlimit-zero-expected-mismatch.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css/stroke-miterlimit-zero-expected-mismatch.html	2017-04-03 13:17:11 UTC (rev 214787)
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+    <style>
+        div {
+            font-size: 200px;
+            color: gray;
+        }
+
+        .test-stroke {
+            text-shadow: none;
+            -webkit-text-stroke: 30px red;
+        }
+    </style>
+</head>
+<body>
+
+<div class="test-stroke" style="stroke-miterlimit: 4;">Miter</div>
+
+</body>
+</html>

Added: trunk/LayoutTests/fast/css/stroke-miterlimit-zero.html (0 => 214787)


--- trunk/LayoutTests/fast/css/stroke-miterlimit-zero.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css/stroke-miterlimit-zero.html	2017-04-03 13:17:11 UTC (rev 214787)
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+    <style>
+        div {
+            font-size: 200px;
+            color: gray;
+        }
+
+        .test-stroke {
+            text-shadow: none;
+            -webkit-text-stroke: 30px red;
+        }
+    </style>
+</head>
+<body>
+
+<div class="test-stroke" style="stroke-miterlimit: 0;">Miter</div>
+
+</body>
+</html>

Modified: trunk/Source/WebCore/ChangeLog (214786 => 214787)


--- trunk/Source/WebCore/ChangeLog	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/ChangeLog	2017-04-03 13:17:11 UTC (rev 214787)
@@ -1,3 +1,57 @@
+2017-04-03  Per Arne Vollan  <pvol...@apple.com>
+
+        Implement stroke-miterlimit.
+        https://bugs.webkit.org/show_bug.cgi?id=169078
+
+        Reviewed by Dean Jackson.
+
+        Support stroke-miterlimit for text rendering, see https://drafts.fxtf.org/paint/.
+
+        Tests: fast/css/stroke-miterlimit-default.html
+               fast/css/stroke-miterlimit-large.html
+               fast/css/stroke-miterlimit-zero.html
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::propertyValue):
+        * css/CSSProperties.json:
+        * css/SVGCSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::svgPropertyValue):
+        * rendering/TextPaintStyle.cpp:
+        (WebCore::computeTextPaintStyle):
+        (WebCore::updateGraphicsContext):
+        * rendering/TextPaintStyle.h:
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::RenderStyle::diff):
+        * rendering/style/RenderStyle.h:
+        (WebCore::RenderStyle::strokeMiterLimit):
+        (WebCore::RenderStyle::setStrokeMiterLimit):
+        (WebCore::RenderStyle::initialStrokeMiterLimit):
+        (WebCore::RenderStyle::setStrokeDashOffset):
+        * rendering/style/RenderStyleConstants.cpp:
+        * rendering/style/RenderStyleConstants.h:
+        * rendering/style/SVGRenderStyle.cpp:
+        (WebCore::SVGRenderStyle::diff):
+        * rendering/style/SVGRenderStyle.h:
+        (WebCore::SVGRenderStyle::initialStrokeDashArray):
+        (WebCore::SVGRenderStyle::strokeDashArray):
+        (WebCore::SVGRenderStyle::initialStrokeMiterLimit): Deleted.
+        (WebCore::SVGRenderStyle::strokeMiterLimit): Deleted.
+        (WebCore::SVGRenderStyle::setStrokeMiterLimit): Deleted.
+        * rendering/style/SVGRenderStyleDefs.cpp:
+        (WebCore::StyleStrokeData::StyleStrokeData):
+        (WebCore::StyleStrokeData::operator==):
+        * rendering/style/SVGRenderStyleDefs.h:
+        * rendering/style/StyleRareInheritedData.cpp:
+        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
+        (WebCore::StyleRareInheritedData::operator==):
+        * rendering/style/StyleRareInheritedData.h:
+        * rendering/svg/RenderSVGShape.cpp:
+        (WebCore::RenderSVGShape::hasSmoothStroke):
+        * rendering/svg/SVGRenderSupport.cpp:
+        (WebCore::SVGRenderSupport::applyStrokeStyleToContext):
+        * rendering/svg/SVGRenderTreeAsText.cpp:
+        (WebCore::writeStyle):
+
 2017-04-03  Alejandro G. Castro  <a...@igalia.com>
 
         [OWR] Fix class structure for the OWR mock classes after last modifications

Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (214786 => 214787)


--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp	2017-04-03 13:17:11 UTC (rev 214787)
@@ -3917,6 +3917,8 @@
             return CSSPrimitiveValue::create(style->joinStyle());
         case CSSPropertyStrokeWidth:
             return zoomAdjustedPixelValueForLength(style->strokeWidth(), *style);
+        case CSSPropertyStrokeMiterlimit:
+            return CSSPrimitiveValue::create(style->strokeMiterLimit(), CSSPrimitiveValue::CSS_NUMBER);
 
         /* Unimplemented CSS 3 properties (including CSS3 shorthand properties) */
         case CSSPropertyAll:
@@ -4018,7 +4020,6 @@
         case CSSPropertyShapeRendering:
         case CSSPropertyStroke:
         case CSSPropertyStrokeDasharray:
-        case CSSPropertyStrokeMiterlimit:
         case CSSPropertyStrokeOpacity:
         case CSSPropertyAlignmentBaseline:
         case CSSPropertyBaselineShift:

Modified: trunk/Source/WebCore/css/CSSProperties.json (214786 => 214787)


--- trunk/Source/WebCore/css/CSSProperties.json	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/css/CSSProperties.json	2017-04-03 13:17:11 UTC (rev 214787)
@@ -3023,8 +3023,7 @@
             "inherited": true,
             "codegen-properties": {
                 "name-for-methods": "StrokeMiterLimit",
-                "converter": "Number<float>",
-                "svg": true
+                "converter": "Number<float>"
             },
             "specification": {
                 "category": "svg",

Modified: trunk/Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp (214786 => 214787)


--- trunk/Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/css/SVGCSSComputedStyleDeclaration.cpp	2017-04-03 13:17:11 UTC (rev 214787)
@@ -113,8 +113,6 @@
             return CSSPrimitiveValue::create(svgStyle.colorRendering());
         case CSSPropertyShapeRendering:
             return CSSPrimitiveValue::create(svgStyle.shapeRendering());
-        case CSSPropertyStrokeMiterlimit:
-            return CSSPrimitiveValue::create(svgStyle.strokeMiterLimit(), CSSPrimitiveValue::CSS_NUMBER);
         case CSSPropertyStrokeOpacity:
             return CSSPrimitiveValue::create(svgStyle.strokeOpacity(), CSSPrimitiveValue::CSS_NUMBER);
         case CSSPropertyAlignmentBaseline:

Modified: trunk/Source/WebCore/rendering/TextPaintStyle.cpp (214786 => 214787)


--- trunk/Source/WebCore/rendering/TextPaintStyle.cpp	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/TextPaintStyle.cpp	2017-04-03 13:17:11 UTC (rev 214787)
@@ -72,6 +72,7 @@
     paintStyle.paintOrder = lineStyle.paintOrder();
     paintStyle.lineJoin = lineStyle.joinStyle();
     paintStyle.lineCap = lineStyle.capStyle();
+    paintStyle.miterLimit = lineStyle.strokeMiterLimit();
     
     if (paintInfo.forceTextColor()) {
         paintStyle.fillColor = paintInfo.forcedTextColor();
@@ -200,6 +201,8 @@
             context.setStrokeThickness(paintStyle.strokeWidth);
         context.setLineJoin(paintStyle.lineJoin);
         context.setLineCap(paintStyle.lineCap);
+        if (paintStyle.lineJoin == MiterJoin)
+            context.setMiterLimit(paintStyle.miterLimit);
     }
 }
 

Modified: trunk/Source/WebCore/rendering/TextPaintStyle.h (214786 => 214787)


--- trunk/Source/WebCore/rendering/TextPaintStyle.h	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/TextPaintStyle.h	2017-04-03 13:17:11 UTC (rev 214787)
@@ -52,6 +52,7 @@
     PaintOrder paintOrder { PaintOrder::Normal };
     LineJoin lineJoin { MiterJoin };
     LineCap lineCap { ButtCap };
+    float miterLimit { defaultMiterLimit };
 };
 
 TextPaintStyle computeTextPaintStyle(const Frame&, const RenderStyle&, const PaintInfo&);

Modified: trunk/Source/WebCore/rendering/style/RenderStyle.cpp (214786 => 214787)


--- trunk/Source/WebCore/rendering/style/RenderStyle.cpp	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.cpp	2017-04-03 13:17:11 UTC (rev 214787)
@@ -642,6 +642,13 @@
 
         if (textStrokeWidth() != other.textStrokeWidth())
             return true;
+        
+        // These properties affect the cached stroke bounding box rects.
+        if (m_rareInheritedData->capStyle != other.m_rareInheritedData->capStyle
+            || m_rareInheritedData->joinStyle != other.m_rareInheritedData->joinStyle
+            || m_rareInheritedData->strokeWidth != other.m_rareInheritedData->strokeWidth
+            || m_rareInheritedData->miterLimit != other.m_rareInheritedData->miterLimit)
+            return true;
     }
 
     if (m_inheritedData->lineHeight != other.m_inheritedData->lineHeight
@@ -910,12 +917,6 @@
             return svgChange;
     }
 
-    // These properties affect the cached stroke bounding box rects.
-    if (m_rareInheritedData->capStyle != other.m_rareInheritedData->capStyle
-        || m_rareInheritedData->joinStyle != other.m_rareInheritedData->joinStyle
-        || m_rareInheritedData->strokeWidth != other.m_rareInheritedData->strokeWidth)
-        return StyleDifferenceLayout;
-
     if (changeRequiresLayout(other, changedContextSensitiveProperties))
         return StyleDifferenceLayout;
 

Modified: trunk/Source/WebCore/rendering/style/RenderStyle.h (214786 => 214787)


--- trunk/Source/WebCore/rendering/style/RenderStyle.h	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.h	2017-04-03 13:17:11 UTC (rev 214787)
@@ -1245,7 +1245,7 @@
     void setApplePayButtonType(ApplePayButtonType type) { SET_VAR(m_rareNonInheritedData, applePayButtonType, static_cast<unsigned>(type)); }
 #endif
 
-    // Support for paint-order, stroke-linecap, and stroke-linejoin from https://drafts.fxtf.org/paint/.
+    // Support for paint-order, stroke-linecap, stroke-linejoin, and stroke-miterlimit from https://drafts.fxtf.org/paint/.
     void setPaintOrder(PaintOrder order) { SET_VAR(m_rareInheritedData, paintOrder, static_cast<unsigned>(order)); }
     PaintOrder paintOrder() const { return static_cast<PaintOrder>(m_rareInheritedData->paintOrder); }
     static PaintOrder initialPaintOrder() { return PaintOrder::Normal; }
@@ -1268,7 +1268,11 @@
     bool hasExplicitlySetStrokeWidth() const { return m_rareInheritedData->hasSetStrokeWidth; };
     bool hasPositiveStrokeWidth() const;
     
-    
+    float strokeMiterLimit() const { return m_rareInheritedData->miterLimit; }
+    void setStrokeMiterLimit(float f) { SET_VAR(m_rareInheritedData, miterLimit, f); }
+    static float initialStrokeMiterLimit() { return defaultMiterLimit; }
+
+
     const SVGRenderStyle& svgStyle() const { return m_svgStyle; }
     SVGRenderStyle& accessSVGStyle() { return m_svgStyle.access(); }
 
@@ -1287,8 +1291,6 @@
     void setStrokeDashArray(Vector<SVGLengthValue> array) { accessSVGStyle().setStrokeDashArray(array); }
     const Length& strokeDashOffset() const { return svgStyle().strokeDashOffset(); }
     void setStrokeDashOffset(Length&& d) { accessSVGStyle().setStrokeDashOffset(WTFMove(d)); }
-    float strokeMiterLimit() const { return svgStyle().strokeMiterLimit(); }
-    void setStrokeMiterLimit(float f) { accessSVGStyle().setStrokeMiterLimit(f); }
 
     const Length& cx() const { return svgStyle().cx(); }
     void setCx(Length&& cx) { accessSVGStyle().setCx(WTFMove(cx)); }

Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp (214786 => 214787)


--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp	2017-04-03 13:17:11 UTC (rev 214787)
@@ -101,4 +101,6 @@
     return between >= PageBreakBetween;
 }
 
+const float defaultMiterLimit = 4;
+
 } // namespace WebCore

Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.h (214786 => 214787)


--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2017-04-03 13:17:11 UTC (rev 214787)
@@ -743,4 +743,6 @@
     Markers
 };
 
+extern const float defaultMiterLimit;
+
 } // namespace WebCore

Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp (214786 => 214787)


--- trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyle.cpp	2017-04-03 13:17:11 UTC (rev 214787)
@@ -188,7 +188,6 @@
         if (m_strokeData->paintType != other.m_strokeData->paintType
             || m_strokeData->paintColor != other.m_strokeData->paintColor
             || m_strokeData->paintUri != other.m_strokeData->paintUri
-            || m_strokeData->miterLimit != other.m_strokeData->miterLimit
             || m_strokeData->dashArray != other.m_strokeData->dashArray
             || m_strokeData->dashOffset != other.m_strokeData->dashOffset
             || m_strokeData->visitedLinkPaintColor != other.m_strokeData->visitedLinkPaintColor

Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyle.h (214786 => 214787)


--- trunk/Source/WebCore/rendering/style/SVGRenderStyle.h	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyle.h	2017-04-03 13:17:11 UTC (rev 214787)
@@ -71,7 +71,6 @@
     static Color initialStrokePaintColor() { return Color(); }
     static String initialStrokePaintUri() { return String(); }
     static Vector<SVGLengthValue> initialStrokeDashArray() { return { }; }
-    static float initialStrokeMiterLimit() { return 4; }
     static float initialStopOpacity() { return 1; }
     static Color initialStopColor() { return Color(0, 0, 0); }
     static float initialFloodOpacity() { return 1; }
@@ -116,7 +115,6 @@
     void setStrokePaint(SVGPaintType, const Color&, const String& uri, bool applyToRegularStyle = true, bool applyToVisitedLinkStyle = false);
 
     void setStrokeDashArray(const Vector<SVGLengthValue>&);
-    void setStrokeMiterLimit(float);
     void setStrokeDashOffset(const Length&);
     void setKerning(const SVGLengthValue&);
     void setStopOpacity(float);
@@ -161,7 +159,6 @@
     const Color& strokePaintColor() const { return m_strokeData->paintColor; }
     const String& strokePaintUri() const { return m_strokeData->paintUri; }
     Vector<SVGLengthValue> strokeDashArray() const { return m_strokeData->dashArray; }
-    float strokeMiterLimit() const { return m_strokeData->miterLimit; }
     const Length& strokeDashOffset() const { return m_strokeData->dashOffset; }
     SVGLengthValue kerning() const { return m_textData->kerning; }
     float stopOpacity() const { return m_stopData->opacity; }
@@ -374,12 +371,6 @@
         m_strokeData.access().dashArray = array;
 }
 
-inline void SVGRenderStyle::setStrokeMiterLimit(float limit)
-{
-    if (!(m_strokeData->miterLimit == limit))
-        m_strokeData.access().miterLimit = limit;
-}
-
 inline void SVGRenderStyle::setStrokeDashOffset(const Length& offset)
 {
     if (!(m_strokeData->dashOffset == offset))

Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp (214786 => 214787)


--- trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.cpp	2017-04-03 13:17:11 UTC (rev 214787)
@@ -76,7 +76,6 @@
 
 StyleStrokeData::StyleStrokeData()
     : opacity(SVGRenderStyle::initialStrokeOpacity())
-    , miterLimit(SVGRenderStyle::initialStrokeMiterLimit())
     , dashOffset(RenderStyle::initialZeroLength())
     , dashArray(SVGRenderStyle::initialStrokeDashArray())
     , paintType(SVGRenderStyle::initialStrokePaintType())
@@ -91,7 +90,6 @@
 inline StyleStrokeData::StyleStrokeData(const StyleStrokeData& other)
     : RefCounted<StyleStrokeData>()
     , opacity(other.opacity)
-    , miterLimit(other.miterLimit)
     , dashOffset(other.dashOffset)
     , dashArray(other.dashArray)
     , paintType(other.paintType)
@@ -111,7 +109,6 @@
 bool StyleStrokeData::operator==(const StyleStrokeData& other) const
 {
     return opacity == other.opacity
-        && miterLimit == other.miterLimit
         && dashOffset == other.dashOffset
         && dashArray == other.dashArray
         && paintType == other.paintType

Modified: trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h (214786 => 214787)


--- trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/style/SVGRenderStyleDefs.h	2017-04-03 13:17:11 UTC (rev 214787)
@@ -137,7 +137,6 @@
         }
 
         float opacity;
-        float miterLimit;
 
         Length dashOffset;
         Vector<SVGLengthValue> dashArray;

Modified: trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp (214786 => 214787)


--- trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp	2017-04-03 13:17:11 UTC (rev 214787)
@@ -130,6 +130,7 @@
     , joinStyle(RenderStyle::initialJoinStyle())
     , hasSetStrokeWidth(false)
     , strokeWidth(RenderStyle::initialOneLength())
+    , miterLimit(RenderStyle::initialStrokeMiterLimit())
     , hyphenationLimitBefore(-1)
     , hyphenationLimitAfter(-1)
     , hyphenationLimitLines(-1)
@@ -217,6 +218,7 @@
     , joinStyle(o.joinStyle)
     , hasSetStrokeWidth(o.hasSetStrokeWidth)
     , strokeWidth(o.strokeWidth)
+    , miterLimit(o.miterLimit)
     , hyphenationString(o.hyphenationString)
     , hyphenationLimitBefore(o.hyphenationLimitBefore)
     , hyphenationLimitAfter(o.hyphenationLimitAfter)
@@ -328,6 +330,7 @@
         && joinStyle == o.joinStyle
         && hasSetStrokeWidth == o.hasSetStrokeWidth
         && strokeWidth == o.strokeWidth
+        && miterLimit == o.miterLimit
         && customProperties == o.customProperties
         && arePointingToEqualData(listStyleImage, o.listStyleImage);
 }

Modified: trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h (214786 => 214787)


--- trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/style/StyleRareInheritedData.h	2017-04-03 13:17:11 UTC (rev 214787)
@@ -141,6 +141,7 @@
     unsigned joinStyle : 2; // LineJoin
     unsigned hasSetStrokeWidth : 1;
     Length strokeWidth;    
+    float miterLimit;
 
     AtomicString hyphenationString;
     short hyphenationLimitBefore;

Modified: trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp (214786 => 214787)


--- trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp	2017-04-03 13:17:11 UTC (rev 214787)
@@ -445,7 +445,7 @@
 {
     const SVGRenderStyle& svgStyle = style().svgStyle();
     return svgStyle.strokeDashArray().isEmpty()
-        && svgStyle.strokeMiterLimit() == svgStyle.initialStrokeMiterLimit()
+        && style().strokeMiterLimit() == style().initialStrokeMiterLimit()
         && style().joinStyle() == style().initialJoinStyle()
         && style().capStyle() == style().initialCapStyle();
 }

Modified: trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp (214786 => 214787)


--- trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderSupport.cpp	2017-04-03 13:17:11 UTC (rev 214787)
@@ -431,7 +431,7 @@
     context->setLineCap(style.capStyle());
     context->setLineJoin(style.joinStyle());
     if (style.joinStyle() == MiterJoin)
-        context->setMiterLimit(svgStyle.strokeMiterLimit());
+        context->setMiterLimit(style.strokeMiterLimit());
 
     const Vector<SVGLengthValue>& dashes = svgStyle.strokeDashArray();
     if (dashes.isEmpty())

Modified: trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp (214786 => 214787)


--- trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp	2017-04-03 13:08:46 UTC (rev 214786)
+++ trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp	2017-04-03 13:17:11 UTC (rev 214787)
@@ -196,7 +196,7 @@
 
             writeIfNotDefault(ts, "opacity", svgStyle.strokeOpacity(), 1.0f);
             writeIfNotDefault(ts, "stroke width", strokeWidth, 1.0);
-            writeIfNotDefault(ts, "miter limit", svgStyle.strokeMiterLimit(), 4.0f);
+            writeIfNotDefault(ts, "miter limit", style.strokeMiterLimit(), 4.0f);
             writeIfNotDefault(ts, "line cap", style.capStyle(), ButtCap);
             writeIfNotDefault(ts, "line join", style.joinStyle(), MiterJoin);
             writeIfNotDefault(ts, "dash offset", dashOffset, 0.0);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to