Ok. Please update this thread once that's done.

On Thu, Oct 29, 2026 at 5:28 AM 'Steve Becker' via blink-dev <
[email protected]> wrote:

> > Out of curiosity, how are the ellptical arc path commands converted to
> M, L, C and Z? The spec doesn't say anything about the necessary
> approximation.
>
> I filed a SVG spec issue <https://github.com/w3c/svgwg/issues/1227>for
> this omission.  I'll follow up with a spec PR soon.  The WPTs cover path
> normalization
> <https://wpt.fyi/results/svg/path/interfaces/getPathData-normalize.html?label=experimental&label=master&aligned>,
> which both Firefox and Chromium pass.  In Chromium,
> SVGPathNormalizer::EmitSegment()
> <https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/svg/svg_path_parser.cc;drc=689c4fe9f23645596a2c5cfba414cad67fd5d7c9;l=145>
> decomposes the arc to a cubic bezier using this note in the SVG spec
> <https://www.w3.org/TR/SVG/implnote.html#ArcConversionEndpointToCenter>.
>
> On Monday, October 26, 2026 at 3:54:53 PM UTC-7 Stephen Chenney wrote:
>
>> On Wed, Oct 21, 2026 at 12:43 PM Chromestatus <
>> [email protected]> wrote:
>>
>>> *Contact emails*
>>> [email protected], [email protected]
>>>
>>> *Explainer*
>>>
>>> https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/SVG/SVGPathDataAPI/explainer.md
>>>
>>> *Specification*
>>> https://w3c.github.io/svgwg/specs/paths/#InterfaceSVGPathData
>>>
>>> *Design docs*
>>>
>>>
>>> https://docs.google.com/document/d/1uCVUqYGKgsCCu7LEtEdO3Yuea-MT-I2XsU6Eoe3mlQI/edit?usp=sharing
>>>
>>> *Summary*
>>> Adds structured JavaScript access to SVG path data through three methods
>>> on SVGPathElement: getPathData() reads the path as an array of {type,
>>> values} objects containing each segment's command and numeric parameters.
>>> setPathData() updates the path from such an array, getPathSegmentAtLength()
>>> returns the segment at a specified distance along the path. These methods
>>> let developers inspect, edit, and construct paths without manually parsing
>>> or serializing the d attribute. The optional getPathData({normalize: true})
>>> setting simplifies path data to absolute move, line, cubic Bézier, and
>>> close commands (M, L, C, and Z). All three APIs operate on the base value
>>> of the d attribute, not CSS-computed or animated values.
>>
>>
>> Out of curiosity, how are the ellptical arc path commands converted to M,
>> L, C and Z? The spec doesn't say anything about the necessary approximation.
>>
>>
>>> *Blink component*
>>> Blink>SVG
>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3ESVG%22>
>>>
>>> *Web Feature ID*
>>> *No information provided*
>>>
>>> *Motivation*
>>> In Chromium, inspecting or modifying individual SVG path segments
>>> requires parsing and serializing the d attribute string, often using
>>> third-party libraries. This makes tasks such as path animation,
>>> hit-testing, and programmatic path construction unnecessarily complex and
>>> error-prone. The previous SVGPathSegList API was removed in Chromium 48
>>> because of its complex live mutation model, numerous factory methods, and
>>> underspecified edge cases. Developers have since relied on polyfills to
>>> restore structured access. Implementing the SVG Working Group’s replacement
>>> API provides a simpler, standardized way to read and modify path segments
>>> without custom string parsing or polyfills.
>>>
>>> *Initial public proposal*
>>> *No information provided*
>>>
>>> *TAG review*
>>> https://github.com/w3ctag/design-reviews/issues/1292
>>>
>>> *TAG review status*
>>> Pending
>>>
>>> *Goals for experimentation*
>>>
>>>
>>> *Risks*
>>>
>>>
>>> *Interoperability and Compatibility*
>>> Low risk. The feature adds new methods to SVGPathElement that developers
>>> can feature-detect before use. Representatives from Chromium, Firefox,
>>> WebKit, and the web developer community contributed to the API design
>>> through the SVG Working Group.
>>>
>>> *Gecko*: Shipped/Shipping (
>>> https://bugzilla.mozilla.org/show_bug.cgi?id=1934525) Firefox 137
>>> shipped the feature in April 2025.
>>>
>>> *WebKit*: No signal (
>>> https://github.com/WebKit/standards-positions/issues/731)
>>>
>>> *Web developers*: Positive (https://issues.chromium.org/issues/40441025) 45
>>> users upvoted this Chromium issue. A widely used polyfill exists:
>>> https://github.com/jarek-foksa/path-data-polyfill
>>>
>>> *Other signals*:
>>>
>>> *WebView application risks*
>>>
>>> Does this intent deprecate or change behavior of existing APIs, such
>>> that it has potentially high risk for Android WebView-based applications?
>>> None. The feature adds new methods to SVGPathElement that developers can
>>> feature-detect before use.
>>>
>>>
>>> *Debuggability*
>>> *No information provided*
>>>
>>> *Will this feature be supported on all six Blink platforms (Windows,
>>> Mac, Linux, ChromeOS, Android, and Android WebView)?*
>>> Yes
>>>
>>> *Is this feature fully tested by web-platform-tests
>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?*
>>> Yes
>>>
>>> https://wpt.fyi/results/svg/path/interfaces?label=experimental&label=master&aligned
>>>
>>> *Flag name on about://flags*
>>> *No information provided*
>>>
>>> *Finch feature name*
>>> SVGPathDataAPI
>>>
>>> *Rollout plan*
>>> Will ship enabled for all users
>>>
>>> *Requires code in //chrome?*
>>> False
>>>
>>> *Tracking bug*
>>> https://issues.chromium.org/issues/40441025
>>>
>>> *Measurement*
>>> Use counters include: - SVGPathElementGetPathData -
>>> SVGPathElementSetPathData -SVGPathElementGetPathSegmentAtLength
>>>
>>> *Availability expectation*
>>> The feature is available in Chromium and Firefox for the foreseeable
>>> future. Microsoft proposed this feature as a focus area for Interop 2027:
>>> https://github.com/web-platform-tests/interop/issues/1469, which if
>>> accepted, could help extend support to additional browsers.
>>>
>>> *Adoption expectation*
>>> The feature replaces a popular polyfill that developers use today with
>>> thousands of downloads per week. The Chromium issue has 45 votes.
>>> Developers have made inquiries, asking when it will become available.
>>>
>>> *Adoption plan*
>>> MDN already documents this feature. Given the existing developer
>>> interest, the feature's adoption should grow organically.
>>>
>>> *Non-OSS dependencies*
>>>
>>> Does the feature depend on any code or APIs outside the Chromium open
>>> source repository and its open-source dependencies to function?
>>> None.
>>>
>>> *Estimated milestones*
>>> Shipping on desktop 159
>>> Shipping on Android 159
>>> Shipping on WebView 159
>>>
>>> *Anticipated spec changes*
>>>
>>> Open questions about a feature may be a source of future web compat or
>>> interop issues. Please list open issues (e.g. links to known github issues
>>> in the project for the feature specification) whose resolution may
>>> introduce web compat/interop risk (e.g., changing to naming or structure of
>>> the API in a non-backward-compatible way).
>>> None. Representatives from Chromium, Firefox, WebKit, and the web
>>> developer community contributed to the API design through the W3C SVG WG.
>>>
>>> *Link to entry on the Chrome Platform Status*
>>> https://chromestatus.com/feature/4787972240179200?gate=4660848254648320
>>>
>>> *Links to previous Intent discussions*
>>> Intent to Prototype:
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/KUXP153MB161031AEB43220B1ADB9B41AC1112%40KUXP153MB1610.APCP153.PROD.OUTLOOK.COM
>>>
>>>
>>> This intent message was generated by Chrome Platform Status
>>> <https://chromestatus.com>.
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "blink-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To view this discussion visit
>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6ad8eba6.a6e82b8f.de7e0.01e9.GAE%40google.com
>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6ad8eba6.a6e82b8f.de7e0.01e9.GAE%40google.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "blink-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/5f8b55e3-9671-4f54-b56d-8ebe4981eb94n%40chromium.org
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/5f8b55e3-9671-4f54-b56d-8ebe4981eb94n%40chromium.org?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOMQ%2Bw9pp19wfPdgLQzcNZYcLJa%2Ba%3DPGU3cNu8vyNVgddrg4Sg%40mail.gmail.com.

Reply via email to