[SVG] Implement `setPathData()` on `SVGPathElement` [chromium/src : main]

1 view
Skip to first unread message

Virali Purbey (Gerrit)

unread,
May 21, 2026, 6:58:08 AMMay 21
to Divyansh Mangal, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Fredrik Söderquist, Stephen Chenney, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
Attention needed from Divyansh Mangal and Vinay Singh

Virali Purbey voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Divyansh Mangal
  • Vinay Singh
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
Gerrit-Change-Number: 7863903
Gerrit-PatchSet: 3
Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
Gerrit-CC: Fredrik Söderquist <f...@opera.com>
Gerrit-CC: Stephen Chenney <sche...@chromium.org>
Gerrit-Attention: Vinay Singh <vinay...@microsoft.com>
Gerrit-Attention: Divyansh Mangal <dma...@microsoft.com>
Gerrit-Comment-Date: Thu, 21 May 2026 10:57:39 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Divyansh Mangal (Gerrit)

unread,
May 21, 2026, 1:22:57 PMMay 21
to Virali Purbey, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Fredrik Söderquist, Stephen Chenney, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
Attention needed from Vinay Singh and Virali Purbey

Divyansh Mangal added 9 comments

Patchset-level comments
File-level comment, Patchset 4 (Latest):
Divyansh Mangal . unresolved
The existing WPT coverage for `setPathData()` only exercises M/L segments and the empty-array case. Consider adding tests for:

- All segment types: H, V, C, S, Q, T, A, Z (both abs and rel)
- Invalid inputs: unknown type string, wrong values count, NaN/Infinity values, very large values
- Round-trip fidelity: setPathData(getPathData()) preserves geometry
Commit Message
Line 14, Patchset 4 (Latest):Invalid segments (unknown type, wrong values count) are silently
skipped. Empty array clears the path. `NaN/Infinity` pass through
per SVG's unrestricted float model.
Divyansh Mangal . unresolved

By silently skipping invalid segments, arent we producing a different valid path from what the caller intended.

For example, [{type:"M", values:[0,0]}, {type:"BOGUS", values:[]}, {type:"L", values:[10,10]}] silently becomes "M 0 0 L 10 10" rather than signaling that segment 2 was invalid.

Fix options:

 - (a) Serialize all segments as-is and let the d attribute parser handle errors per SVG error-handling rules (it will stop at the first invalid token).
- (b) If filtering is intentional for web-compat with other implementations, add a spec reference or comment justifying it, and ensure WPT tests pin this behavior.
Line 19, Patchset 4 (Latest):Measured via UseCounter kSVGPathElementSetPathData.
Divyansh Mangal . unresolved

should we consider adding tests for the newly added usecounter too?

Line 21, Patchset 4 (Latest):[1] https://svgwg.org/specs/paths/#DOMInterfaces
Divyansh Mangal . unresolved

same comment as earlier CL, probably a good idea to link the design doc you created

File third_party/blink/renderer/core/svg/svg_path_data_utils.h
Line 26, Patchset 4 (Latest):CORE_EXPORT String
Divyansh Mangal . unresolved

is `CORE_EXPORT` needed if this function is only used by `svg_path_element.cc` within the same component?

File third_party/blink/renderer/core/svg/svg_path_data_utils.cc
Line 130, Patchset 4 (Latest): if (ch == 'z') {
return kPathSegClosePath;
}
Divyansh Mangal . unresolved

cant we add this in the lookup itself?

Line 233, Patchset 4 (Latest): int expected_count = ValuesCountForSegType(type);
Divyansh Mangal . unresolved

should this be const?

Line 246, Patchset 4 (Latest): builder.AppendNumber(value);
Divyansh Mangal . unresolved

`unrestricted float` allows NaN/Infinity through WebIDL. `AppendNumber` serializes these as "nan" / "inf", not valid SVG path numeric tokens. The subsequent `setAttribute` to parse round-trip will fail at those tokens.

Should we consider replacing with non-finite values with 0 or skip the segment if any value is non-finite?

File third_party/blink/web_tests/external/wpt/svg/path/interfaces/SVGPathSegment-expected.txt
Line 1, Patchset 4 (Latest):This is a testharness.js-based test.
[FAIL] SVGPathSegment interface exists
assert_not_equals: got disallowed value undefined
Divyansh Mangal . unresolved

we plan to fix this too?

Open in Gerrit

Related details

Attention is currently required from:
  • Vinay Singh
  • Virali Purbey
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
    Gerrit-Change-Number: 7863903
    Gerrit-PatchSet: 4
    Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
    Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
    Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
    Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
    Gerrit-CC: Fredrik Söderquist <f...@opera.com>
    Gerrit-CC: Stephen Chenney <sche...@chromium.org>
    Gerrit-Attention: Vinay Singh <vinay...@microsoft.com>
    Gerrit-Attention: Virali Purbey <virali...@microsoft.com>
    Gerrit-Comment-Date: Thu, 21 May 2026 17:22:25 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Divyansh Mangal (Gerrit)

    unread,
    May 21, 2026, 1:23:15 PMMay 21
    to Virali Purbey, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Fredrik Söderquist, Stephen Chenney, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
    Attention needed from Vinay Singh and Virali Purbey

    Divyansh Mangal added 1 comment

    Patchset-level comments
    Divyansh Mangal . unresolved

    will this api require serialization related unit tests?

    Gerrit-Comment-Date: Thu, 21 May 2026 17:22:52 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Divyansh Mangal (Gerrit)

    unread,
    May 21, 2026, 1:24:00 PMMay 21
    to Virali Purbey, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Fredrik Söderquist, Stephen Chenney, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
    Attention needed from Vinay Singh and Virali Purbey

    Divyansh Mangal added 1 comment

    Patchset-level comments
    Divyansh Mangal . unresolved

    There are failures in your CQ dry run, please consider fixing them before raising for review

    Gerrit-Comment-Date: Thu, 21 May 2026 17:23:37 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Virali Purbey (Gerrit)

    unread,
    Jun 10, 2026, 5:19:34 AMJun 10
    to Divyansh Mangal, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Fredrik Söderquist, Stephen Chenney, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
    Attention needed from Divyansh Mangal and Vinay Singh

    Virali Purbey added 11 comments

    Patchset-level comments
    File-level comment, Patchset 4:
    Divyansh Mangal . resolved

    There are failures in your CQ dry run, please consider fixing them before raising for review

    Virali Purbey

    Done

    File-level comment, Patchset 4:
    Divyansh Mangal . resolved
    The existing WPT coverage for `setPathData()` only exercises M/L segments and the empty-array case. Consider adding tests for:

    - All segment types: H, V, C, S, Q, T, A, Z (both abs and rel)
    - Invalid inputs: unknown type string, wrong values count, NaN/Infinity values, very large values
    - Round-trip fidelity: setPathData(getPathData()) preserves geometry
    Virali Purbey

    Done

    File-level comment, Patchset 4:
    Divyansh Mangal . resolved

    will this api require serialization related unit tests?

    Virali Purbey

    Done

    Commit Message
    Line 14, Patchset 4:Invalid segments (unknown type, wrong values count) are silently

    skipped. Empty array clears the path. `NaN/Infinity` pass through
    per SVG's unrestricted float model.
    Divyansh Mangal . resolved

    By silently skipping invalid segments, arent we producing a different valid path from what the caller intended.

    For example, [{type:"M", values:[0,0]}, {type:"BOGUS", values:[]}, {type:"L", values:[10,10]}] silently becomes "M 0 0 L 10 10" rather than signaling that segment 2 was invalid.

    Fix options:

     - (a) Serialize all segments as-is and let the d attribute parser handle errors per SVG error-handling rules (it will stop at the first invalid token).
    - (b) If filtering is intentional for web-compat with other implementations, add a spec reference or comment justifying it, and ensure WPT tests pin this behavior.
    Virali Purbey

    Good catch, thanks. Switched to valid-prefix semantics: the first invalid segment and everything after it is dropped, matching the d-attribute parser's behavior. Pinned in `setPathData-malformed.html` for unknown type, wrong arity, NaN/Infinity, and non-binary arc flag.

    Line 19, Patchset 4:Measured via UseCounter kSVGPathElementSetPathData.
    Divyansh Mangal . resolved

    should we consider adding tests for the newly added usecounter too?

    Virali Purbey

    Done

    same comment as earlier CL, probably a good idea to link the design doc you created

    Virali Purbey

    Done

    File third_party/blink/renderer/core/svg/svg_path_data_utils.h
    Line 26, Patchset 4:CORE_EXPORT String
    Divyansh Mangal . resolved

    is `CORE_EXPORT` needed if this function is only used by `svg_path_element.cc` within the same component?

    Virali Purbey

    Done

    File third_party/blink/renderer/core/svg/svg_path_data_utils.cc
    Line 130, Patchset 4: if (ch == 'z') {
    return kPathSegClosePath;
    }
    Divyansh Mangal . resolved

    cant we add this in the lookup itself?

    Virali Purbey

    Updated the code.

    Line 233, Patchset 4: int expected_count = ValuesCountForSegType(type);
    Divyansh Mangal . resolved

    should this be const?

    Virali Purbey

    Done

    Line 246, Patchset 4: builder.AppendNumber(value);
    Divyansh Mangal . resolved

    `unrestricted float` allows NaN/Infinity through WebIDL. `AppendNumber` serializes these as "nan" / "inf", not valid SVG path numeric tokens. The subsequent `setAttribute` to parse round-trip will fail at those tokens.

    Should we consider replacing with non-finite values with 0 or skip the segment if any value is non-finite?

    Virali Purbey

    Done

    File third_party/blink/web_tests/external/wpt/svg/path/interfaces/SVGPathSegment-expected.txt
    Line 1, Patchset 4:This is a testharness.js-based test.

    [FAIL] SVGPathSegment interface exists
    assert_not_equals: got disallowed value undefined
    Divyansh Mangal . resolved

    we plan to fix this too?

    Virali Purbey

    We have to update it. Added a TODO for this.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Divyansh Mangal
    • Vinay Singh
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
      Gerrit-Change-Number: 7863903
      Gerrit-PatchSet: 6
      Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
      Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
      Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
      Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
      Gerrit-CC: Fredrik Söderquist <f...@opera.com>
      Gerrit-CC: Stephen Chenney <sche...@chromium.org>
      Gerrit-Attention: Vinay Singh <vinay...@microsoft.com>
      Gerrit-Attention: Divyansh Mangal <dma...@microsoft.com>
      Gerrit-Comment-Date: Wed, 10 Jun 2026 09:19:09 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Divyansh Mangal <dma...@microsoft.com>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Virali Purbey (Gerrit)

      unread,
      Jun 10, 2026, 5:59:42 AMJun 10
      to Olga Gerchikov, Menard, Alexis, Divyansh Mangal, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Fredrik Söderquist, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
      Attention needed from Divyansh Mangal, Vinay Singh and Virali Purbey

      Message from Virali Purbey

      Set Ready For Review

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Divyansh Mangal
      • Vinay Singh
      • Virali Purbey
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
      Gerrit-Change-Number: 7863903
      Gerrit-PatchSet: 8
      Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
      Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
      Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
      Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
      Gerrit-CC: Fredrik Söderquist <f...@opera.com>
      Gerrit-CC: Menard, Alexis <alexis...@intel.com>
      Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
      Gerrit-Attention: Virali Purbey <virali...@microsoft.com>
      Gerrit-Attention: Divyansh Mangal <dma...@microsoft.com>
      Gerrit-Comment-Date: Wed, 10 Jun 2026 09:59:11 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Virali Purbey (Gerrit)

      unread,
      Jun 15, 2026, 6:08:01 AMJun 15
      to Olga Gerchikov, Menard, Alexis, Divyansh Mangal, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Fredrik Söderquist, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
      Attention needed from Divyansh Mangal, Vinay Singh and Virali Purbey

      Message from Virali Purbey

      Set Ready For Review

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Divyansh Mangal
      • Vinay Singh
      • Virali Purbey
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
      Gerrit-Change-Number: 7863903
      Gerrit-PatchSet: 10
      Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
      Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
      Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
      Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
      Gerrit-CC: Fredrik Söderquist <f...@opera.com>
      Gerrit-CC: Menard, Alexis <alexis...@intel.com>
      Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
      Gerrit-CC: Stephen Chenney <sche...@chromium.org>
      Gerrit-Attention: Vinay Singh <vinay...@microsoft.com>
      Gerrit-Attention: Virali Purbey <virali...@microsoft.com>
      Gerrit-Attention: Divyansh Mangal <dma...@microsoft.com>
      Gerrit-Comment-Date: Mon, 15 Jun 2026 10:07:25 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Divyansh Mangal (Gerrit)

      unread,
      Jun 15, 2026, 8:38:09 AM (14 days ago) Jun 15
      to Virali Purbey, Olga Gerchikov, Menard, Alexis, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Fredrik Söderquist, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
      Attention needed from Vinay Singh and Virali Purbey

      Divyansh Mangal added 1 comment

      Patchset-level comments
      File-level comment, Patchset 10 (Latest):
      Divyansh Mangal . unresolved

      some of the test case are failing in the new patchset, PTAL

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Vinay Singh
      • Virali Purbey
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement is not satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
        Gerrit-Change-Number: 7863903
        Gerrit-PatchSet: 10
        Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
        Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
        Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
        Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
        Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
        Gerrit-CC: Fredrik Söderquist <f...@opera.com>
        Gerrit-CC: Menard, Alexis <alexis...@intel.com>
        Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
        Gerrit-CC: Stephen Chenney <sche...@chromium.org>
        Gerrit-Attention: Vinay Singh <vinay...@microsoft.com>
        Gerrit-Attention: Virali Purbey <virali...@microsoft.com>
        Gerrit-Comment-Date: Mon, 15 Jun 2026 12:37:35 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Divyansh Mangal (Gerrit)

        unread,
        Jun 15, 2026, 1:27:19 PM (14 days ago) Jun 15
        to Virali Purbey, Olga Gerchikov, Menard, Alexis, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Fredrik Söderquist, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
        Attention needed from Vinay Singh and Virali Purbey

        Divyansh Mangal added 3 comments

        Patchset-level comments
        Divyansh Mangal . unresolved

        Should we consider adding a <use> invalidation regression test since setAttribute("d") is the mechanism for propagation

        File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-malformed.html
        Line 154, Patchset 10 (Latest):</script>
        Divyansh Mangal . unresolved

        Missing test cases:

        1- malformed first moveto. If the first segment is `{type:"M", values:[0]}` (wrong arity), the byte stream should be empty and d should reset. This is a distinct code path from "leading non-moveto".

        2- invalid sweep flag. Only `largeArcFlag` `(values[3])` invalid is tested. The `sweepFlag` `(values[4])` invalid branch is untested.

        File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-segment-types.html
        Line 94, Patchset 10 (Latest):];
        Divyansh Mangal . unresolved

        Missing test case -> single moveto only. No test for the minimal valid non-empty path.

        Gerrit-Comment-Date: Mon, 15 Jun 2026 17:26:48 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Divyansh Mangal (Gerrit)

        unread,
        Jun 15, 2026, 1:30:48 PM (14 days ago) Jun 15
        to Virali Purbey, Olga Gerchikov, Menard, Alexis, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Fredrik Söderquist, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
        Attention needed from Vinay Singh and Virali Purbey

        Divyansh Mangal added 1 comment

        File third_party/blink/renderer/core/svg/svg_path_data_source.h
        Line 18, Patchset 10 (Latest):// SVG Paths §9.7). A leading non-moveto yields an empty stream.
        Divyansh Mangal . unresolved

        nit: probably a good idea to mention the link itself

        Gerrit-Comment-Date: Mon, 15 Jun 2026 17:30:19 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Virali Purbey (Gerrit)

        unread,
        Jun 17, 2026, 2:24:44 AM (12 days ago) Jun 17
        to Divyansh Mangal, Olga Gerchikov, Menard, Alexis, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Fredrik Söderquist, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
        Attention needed from Divyansh Mangal and Vinay Singh

        Virali Purbey added 5 comments

        Patchset-level comments
        File-level comment, Patchset 10:
        Divyansh Mangal . resolved

        some of the test case are failing in the new patchset, PTAL

        Virali Purbey

        Resolved.

        File-level comment, Patchset 10:
        Divyansh Mangal . resolved

        Should we consider adding a <use> invalidation regression test since setAttribute("d") is the mechanism for propagation

        Virali Purbey

        I don't think this is required here since we didn't add that flow. Will follow up in another CL if needed.

        File third_party/blink/renderer/core/svg/svg_path_data_source.h
        Line 18, Patchset 10:// SVG Paths §9.7). A leading non-moveto yields an empty stream.
        Divyansh Mangal . resolved

        nit: probably a good idea to mention the link itself

        Virali Purbey

        Done

        File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-malformed.html
        Line 154, Patchset 10:</script>
        Divyansh Mangal . resolved

        Missing test cases:

        1- malformed first moveto. If the first segment is `{type:"M", values:[0]}` (wrong arity), the byte stream should be empty and d should reset. This is a distinct code path from "leading non-moveto".

        2- invalid sweep flag. Only `largeArcFlag` `(values[3])` invalid is tested. The `sweepFlag` `(values[4])` invalid branch is untested.

        Virali Purbey

        Added these tests.

        File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-segment-types.html
        Line 94, Patchset 10:];
        Divyansh Mangal . resolved

        Missing test case -> single moveto only. No test for the minimal valid non-empty path.

        Virali Purbey

        Done

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Divyansh Mangal
        • Vinay Singh
        Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement is not satisfiedCode-Owners
          • requirement is not satisfiedCode-Review
          • requirement is not satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
          Gerrit-Change-Number: 7863903
          Gerrit-PatchSet: 12
          Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
          Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
          Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
          Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
          Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
          Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
          Gerrit-CC: Fredrik Söderquist <f...@opera.com>
          Gerrit-CC: Menard, Alexis <alexis...@intel.com>
          Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
          Gerrit-CC: Stephen Chenney <sche...@chromium.org>
          Gerrit-Attention: Vinay Singh <vinay...@microsoft.com>
          Gerrit-Attention: Divyansh Mangal <dma...@microsoft.com>
          Gerrit-Comment-Date: Wed, 17 Jun 2026 06:24:15 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          Comment-In-Reply-To: Divyansh Mangal <dma...@microsoft.com>
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Fredrik Söderquist (Gerrit)

          unread,
          Jun 17, 2026, 9:42:59 AM (12 days ago) Jun 17
          to Virali Purbey, Divyansh Mangal, Olga Gerchikov, Menard, Alexis, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
          Attention needed from Divyansh Mangal, Vinay Singh and Virali Purbey

          Fredrik Söderquist added 20 comments

          File third_party/blink/renderer/core/svg/svg_path_data_source.h
          File-level comment, Patchset 12 (Latest):
          Fredrik Söderquist . unresolved
          Should this file just contain a class that implements the "normal" path source interface:
          ```
          class PathSourceInterface {
          public:
          bool HasMoreData() const;
          PathSegmentData ParseSegment();
          };
          ```
          and then use the regular "path parsing driver" (`ParsePath()`) instead?

          It also feels like the name of this file should be `svg_path_segments_source.{cc,h}` to match up with the builder.

          File third_party/blink/renderer/core/svg/svg_path_data_source.cc
          Line 29, Patchset 12 (Latest):bool BuildPathSegmentData(SVGPathSegType type,
          Fredrik Söderquist . unresolved

          I'd suggest splitting this into a "validate" and a "build". `ParseSegmentType` could be split in a similar way. With a table the "validate" function could be very simple.

          Line 32, Patchset 12 (Latest): for (float value : values) {
          if (!std::isfinite(value)) {
          return false;
          }
          }
          Fredrik Söderquist . unresolved
          ```
          if (!std::ranges::all_of(values, std::isfinite)) {
          return false;
          }
          ```
          Line 96, Patchset 12 (Latest): if (values[3] != 0.0f && values[3] != 1.0f) {
          Fredrik Söderquist . unresolved

          I'd perhaps expect this to be more lax, so more towards `ToBoolean()` in ECMAScript, so zero is false and everything else is true. That would eliminate the need for this validation.

          Line 109, Patchset 12 (Latest): return false;
          Fredrik Söderquist . unresolved

          The `NOTREACHED()` should be here.

          File third_party/blink/renderer/core/svg/svg_path_element.h
          Line 53, Patchset 12 (Latest):
          Fredrik Söderquist . unresolved

          I think we can drop this blank line. Having `getPathData()` right next to/grouped with `setPathData` feels reasonable?

          File third_party/blink/renderer/core/svg/svg_path_element.cc
          Line 125, Patchset 12 (Latest): // TODO(crbug.com/40441025): Write the byte stream directly into SVGPath
          // once lazy attribute sync fires Will/DidModifyAttribute.
          Fredrik Söderquist . unresolved

          I don't think this should be blocked on this - it's a pre-existing issue.

          Line 129, Patchset 12 (Latest): ? g_empty_atom
          Fredrik Söderquist . unresolved

          I guess this needs to be defined. I.e if setting an empty list should set the attribute to an empty string or remove it. For list-valued attributes I believe we have the latter behavior, and this is sort of that.

          File third_party/blink/renderer/core/svg/svg_path_element.idl
          File third_party/blink/web_tests/external/wpt/svg/path/interfaces/SVGPathSegment.svg
          Line 18, Patchset 12 (Latest): // TODO(crbug.com/40441025): getPathSegmentAtLength() is not yet
          // implemented in Chromium; this assertion currently fails and is
          // baselined in SVGPathSegment-expected.txt.
          Fredrik Söderquist . unresolved

          This shouldn't go in the test. Remove.

          File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-css-d.html
          Line 26, Patchset 12 (Latest): assert_equals(path.getAttribute("d"), "M 0 0 L 10 10",
          Fredrik Söderquist . unresolved

          How the path data should be serialized when `setPathData()` is called needs to be specified.

          File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-during-animation.html
          Line 19, Patchset 12 (Latest):function waitForAnimationFrame() {
          return new Promise(resolve => requestAnimationFrame(() => {
          requestAnimationFrame(resolve);
          }));
          }
          Fredrik Söderquist . unresolved

          There's `waitForAtLeastOneFrame()` in `/common/rendering-utils.js`.

          File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-malformed.html
          Line 19, Patchset 12 (Latest): { type: "BOGUS", values: [] },
          Fredrik Söderquist . unresolved

          Maybe also test a single invalid character

          Line 23, Patchset 12 (Latest): assert_equals(segs.length, 2);
          assert_equals(segs[0].type, "M");
          assert_equals(segs[1].type, "L");
          Fredrik Söderquist . unresolved

          Could these tests use the helper that was added in the previous CL? (Here and below.)

          Line 75, Patchset 12 (Latest): const path = createPath();
          // Arc flags must be exactly 0 or 1.
          path.setPathData([
          { type: "M", values: [0, 0] },
          { type: "A", values: [25, 25, 0, 2, 1, 50, 50] }
          ]);
          const segs = path.getPathData();
          assert_equals(segs.length, 1, "non-binary arc flag is invalid");
          assert_equals(segs[0].type, "M");
          }, "setPathData() with a non-binary arc flag truncates at that segment");

          test(() => {
          const path = createPath();
          // Sweep flag (values[4]) must be 0 or 1, like the large-arc flag.
          path.setPathData([
          { type: "M", values: [0, 0] },
          { type: "A", values: [25, 25, 0, 1, 2, 50, 50] }
          ]);
          const segs = path.getPathData();
          assert_equals(segs.length, 1, "non-binary sweep flag is invalid");
          assert_equals(segs[0].type, "M");
          Fredrik Söderquist . unresolved

          Per the above, I disagree with this (and the spec says nothing?). It'd probably be good to use `false` and `true` in tests for these unless testing specific values.

          Line 100, Patchset 12 (Latest): // Bearing (B/b) is defined in SVG Paths but not implemented by any browser.
          path.setPathData([
          { type: "M", values: [0, 0] },
          { type: "B", values: [45] },

          { type: "L", values: [10, 10] }
          ]);
          const segs = path.getPathData();
          assert_equals(segs.length, 1, "B is treated as unknown");
          }, "setPathData() treats Bearing (B) as an unknown command");

          test(() => {
          const path = createPath();
          // Catmull-Rom (R/r) is also defined but not implemented.
          path.setPathData([
          { type: "M", values: [0, 0] },
          { type: "r", values: [10, 10, 20, 20, 30, 30] },
          { type: "L", values: [40, 40] }
          ]);
          const segs = path.getPathData();
          Fredrik Söderquist . unresolved

          I think it would be better to avoid testing these "specified but not implemented" segments. It's not really the business of this API to care.

          File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-overrides-d.html
          Line 22, Patchset 12 (Latest): const path = document.createElementNS("http://www.w3.org/2000/svg", "path");
          Fredrik Söderquist . unresolved

          Isn't this the same as `createPath()`?

          File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-roundtrip.html
          Line 21, Patchset 12 (Latest): test(() => {
          const path = createPath(input);
          const original = path.getPathData();

          const path2 = createPath();
          path2.setPathData(original);

          assert_path_data_equals(path2.getPathData(), original);
          Fredrik Söderquist . unresolved

          Maybe this test could just be merged into the `...-segments-...` test? That would give coverage of more segment types as well.

          File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-segment-types.html
          Line 105, Patchset 12 (Latest): const path = createPath();
          // Minimal valid non-empty path.
          path.setPathData([
          { type: "M", values: [0, 0] }
          ]);
          assert_equals(path.getAttribute("d"), "M 0 0");
          }, "setPathData() with a single moveto");
          Fredrik Söderquist . unresolved

          This could just be another entry in the array above?

          Line 113, Patchset 12 (Latest):test(() => {
          const path = createPath();
          path.setAttribute("d", "M 5 5 L 10 10");
          path.setPathData([]);
          assert_equals(path.getAttribute("d"), "",
          "Empty sequence sets d to the empty string");
          }, "setPathData() with an empty sequence");
          Fredrik Söderquist . unresolved

          This test looks a bit out of place here, maybe move it somewhere else?

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Divyansh Mangal
          • Vinay Singh
          • Virali Purbey
          Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement is not satisfiedCode-Owners
            • requirement is not satisfiedCode-Review
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement is not satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
            Gerrit-Change-Number: 7863903
            Gerrit-PatchSet: 12
            Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
            Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
            Gerrit-Reviewer: Fredrik Söderquist <f...@opera.com>
            Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
            Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
            Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
            Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
            Gerrit-CC: Menard, Alexis <alexis...@intel.com>
            Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
            Gerrit-CC: Stephen Chenney <sche...@chromium.org>
            Gerrit-Attention: Vinay Singh <vinay...@microsoft.com>
            Gerrit-Attention: Virali Purbey <virali...@microsoft.com>
            Gerrit-Attention: Divyansh Mangal <dma...@microsoft.com>
            Gerrit-Comment-Date: Wed, 17 Jun 2026 13:42:40 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Virali Purbey (Gerrit)

            unread,
            Jun 22, 2026, 4:51:30 AM (7 days ago) Jun 22
            to Fredrik Söderquist, Divyansh Mangal, Olga Gerchikov, Menard, Alexis, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
            Attention needed from Divyansh Mangal, Fredrik Söderquist and Vinay Singh

            Virali Purbey added 20 comments

            File third_party/blink/renderer/core/svg/svg_path_data_source.h
            File-level comment, Patchset 12:
            Fredrik Söderquist . resolved
            Should this file just contain a class that implements the "normal" path source interface:
            ```
            class PathSourceInterface {
            public:
            bool HasMoreData() const;
            PathSegmentData ParseSegment();
            };
            ```
            and then use the regular "path parsing driver" (`ParsePath()`) instead?

            It also feels like the name of this file should be `svg_path_segments_source.{cc,h}` to match up with the builder.

            Virali Purbey

            Done

            File third_party/blink/renderer/core/svg/svg_path_data_source.cc
            Line 29, Patchset 12:bool BuildPathSegmentData(SVGPathSegType type,
            Fredrik Söderquist . resolved

            I'd suggest splitting this into a "validate" and a "build". `ParseSegmentType` could be split in a similar way. With a table the "validate" function could be very simple.

            Virali Purbey

            Done

            Line 32, Patchset 12: for (float value : values) {

            if (!std::isfinite(value)) {
            return false;
            }
            }
            Fredrik Söderquist . resolved
            ```
            if (!std::ranges::all_of(values, std::isfinite)) {
            return false;
            }
            ```
            Virali Purbey

            Done, switched to `std::ranges::all_of`. Wrapped `std::isfinite` in a small lambda since it's an overload set and can't be passed directly as a function object.

            Line 96, Patchset 12: if (values[3] != 0.0f && values[3] != 1.0f) {
            Fredrik Söderquist . resolved

            I'd perhaps expect this to be more lax, so more towards `ToBoolean()` in ECMAScript, so zero is false and everything else is true. That would eliminate the need for this validation.

            Virali Purbey

            Done. Flags now follow `ToBoolean` (0 = false, any other value = true), so the explicit validation is gone.

            Line 109, Patchset 12: return false;
            Fredrik Söderquist . resolved

            The `NOTREACHED()` should be here.

            Virali Purbey

            Done. `BuildByteStreamFromSegments` now skips out at the first unknown segment type, so `BuildPathSegmentData` only ever sees known types and the unknown case falls through to `NOTREACHED()`.

            File third_party/blink/renderer/core/svg/svg_path_element.h
            Line 53, Patchset 12:
            Fredrik Söderquist . resolved

            I think we can drop this blank line. Having `getPathData()` right next to/grouped with `setPathData` feels reasonable?

            Virali Purbey

            Done

            File third_party/blink/renderer/core/svg/svg_path_element.cc
            Line 125, Patchset 12: // TODO(crbug.com/40441025): Write the byte stream directly into SVGPath

            // once lazy attribute sync fires Will/DidModifyAttribute.
            Fredrik Söderquist . resolved

            I don't think this should be blocked on this - it's a pre-existing issue.

            Virali Purbey

            Agreed, it's pre-existing. I'll leave the TODO and not block this CL on it.

            Line 129, Patchset 12: ? g_empty_atom
            Fredrik Söderquist . resolved

            I guess this needs to be defined. I.e if setting an empty list should set the attribute to an empty string or remove it. For list-valued attributes I believe we have the latter behavior, and this is sort of that.

            Virali Purbey

            Done. An empty result now removes the `d` attribute (rather than setting it to ""), matching the behavior of other list-valued attributes. Updated the tests accordingly.

            File third_party/blink/renderer/core/svg/svg_path_element.idl
            Line 27, Patchset 12:// https://svgwg.org/specs/paths/#InterfaceSVGPathElement
            Fredrik Söderquist . resolved

            Restore.

            Virali Purbey

            Done

            File third_party/blink/web_tests/external/wpt/svg/path/interfaces/SVGPathSegment.svg
            Line 18, Patchset 12: // TODO(crbug.com/40441025): getPathSegmentAtLength() is not yet

            // implemented in Chromium; this assertion currently fails and is
            // baselined in SVGPathSegment-expected.txt.
            Fredrik Söderquist . resolved

            This shouldn't go in the test. Remove.

            Virali Purbey

            Done

            File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-css-d.html
            Line 26, Patchset 12: assert_equals(path.getAttribute("d"), "M 0 0 L 10 10",
            Fredrik Söderquist . resolved

            How the path data should be serialized when `setPathData()` is called needs to be specified.

            Virali Purbey

            Agreed. Added a `TODO(crbug.com/40441025)` flagging that the `d` serialization from `setPathData()` is unspecified; the assertion documents Chromium's current output for now. I'll tighten it once I get it clarified from the WG.

            File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-during-animation.html
            Line 19, Patchset 12:function waitForAnimationFrame() {

            return new Promise(resolve => requestAnimationFrame(() => {
            requestAnimationFrame(resolve);
            }));
            }
            Fredrik Söderquist . resolved

            There's `waitForAtLeastOneFrame()` in `/common/rendering-utils.js`.

            Virali Purbey

            Done

            File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-malformed.html
            Line 19, Patchset 12: { type: "BOGUS", values: [] },
            Fredrik Söderquist . resolved

            Maybe also test a single invalid character

            Virali Purbey

            Done

            Line 23, Patchset 12: assert_equals(segs.length, 2);

            assert_equals(segs[0].type, "M");
            assert_equals(segs[1].type, "L");
            Fredrik Söderquist . resolved

            Could these tests use the helper that was added in the previous CL? (Here and below.)

            Virali Purbey

            Done

            Line 75, Patchset 12: const path = createPath();

            // Arc flags must be exactly 0 or 1.
            path.setPathData([
            { type: "M", values: [0, 0] },
            { type: "A", values: [25, 25, 0, 2, 1, 50, 50] }
            ]);
            const segs = path.getPathData();
            assert_equals(segs.length, 1, "non-binary arc flag is invalid");
            assert_equals(segs[0].type, "M");
            }, "setPathData() with a non-binary arc flag truncates at that segment");

            test(() => {
            const path = createPath();
            // Sweep flag (values[4]) must be 0 or 1, like the large-arc flag.
            path.setPathData([
            { type: "M", values: [0, 0] },
            { type: "A", values: [25, 25, 0, 1, 2, 50, 50] }
            ]);
            const segs = path.getPathData();
            assert_equals(segs.length, 1, "non-binary sweep flag is invalid");
            assert_equals(segs[0].type, "M");
            Fredrik Söderquist . resolved

            Per the above, I disagree with this (and the spec says nothing?). It'd probably be good to use `false` and `true` in tests for these unless testing specific values.

            Virali Purbey

            Done. Dropped the non-binary-flag tests and switched the arc tests to `false/true`; added a positive case showing a non-0/1 value coerces to 1.

            Line 100, Patchset 12: // Bearing (B/b) is defined in SVG Paths but not implemented by any browser.

            path.setPathData([
            { type: "M", values: [0, 0] },
            { type: "B", values: [45] },
            { type: "L", values: [10, 10] }
            ]);
            const segs = path.getPathData();
            assert_equals(segs.length, 1, "B is treated as unknown");
            }, "setPathData() treats Bearing (B) as an unknown command");

            test(() => {
            const path = createPath();
            // Catmull-Rom (R/r) is also defined but not implemented.
            path.setPathData([
            { type: "M", values: [0, 0] },
            { type: "r", values: [10, 10, 20, 20, 30, 30] },
            { type: "L", values: [40, 40] }
            ]);
            const segs = path.getPathData();
            Fredrik Söderquist . resolved

            I think it would be better to avoid testing these "specified but not implemented" segments. It's not really the business of this API to care.

            Virali Purbey

            Done, removed the B/r cases - agreed it's not this API's concern.

            File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-overrides-d.html
            Line 22, Patchset 12: const path = document.createElementNS("http://www.w3.org/2000/svg", "path");
            Fredrik Söderquist . resolved

            Isn't this the same as `createPath()`?

            Virali Purbey

            Done

            File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-roundtrip.html

            const path = createPath(input);
            const original = path.getPathData();

            const path2 = createPath();
            path2.setPathData(original);

            assert_path_data_equals(path2.getPathData(), original);
            Fredrik Söderquist . resolved

            Maybe this test could just be merged into the `...-segments-...` test? That would give coverage of more segment types as well.

            Virali Purbey

            Done

            File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-segment-types.html
            Line 105, Patchset 12: const path = createPath();

            // Minimal valid non-empty path.
            path.setPathData([
            { type: "M", values: [0, 0] }
            ]);
            assert_equals(path.getAttribute("d"), "M 0 0");
            }, "setPathData() with a single moveto");
            Fredrik Söderquist . resolved

            This could just be another entry in the array above?

            Virali Purbey

            Done


            const path = createPath();
            path.setAttribute("d", "M 5 5 L 10 10");
            path.setPathData([]);
            assert_equals(path.getAttribute("d"), "",
            "Empty sequence sets d to the empty string");
            }, "setPathData() with an empty sequence");
            Fredrik Söderquist . resolved

            This test looks a bit out of place here, maybe move it somewhere else?

            Virali Purbey

            Done

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Divyansh Mangal
            • Fredrik Söderquist
            • Vinay Singh
            Submit Requirements:
              • requirement satisfiedCode-Coverage
              • requirement is not satisfiedCode-Owners
              • requirement is not satisfiedCode-Review
              • requirement is not satisfiedReview-Enforcement
              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
              Gerrit-MessageType: comment
              Gerrit-Project: chromium/src
              Gerrit-Branch: main
              Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
              Gerrit-Change-Number: 7863903
              Gerrit-PatchSet: 14
              Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
              Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
              Gerrit-Reviewer: Fredrik Söderquist <f...@opera.com>
              Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
              Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
              Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
              Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
              Gerrit-CC: Menard, Alexis <alexis...@intel.com>
              Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
              Gerrit-CC: Stephen Chenney <sche...@chromium.org>
              Gerrit-Attention: Vinay Singh <vinay...@microsoft.com>
              Gerrit-Attention: Fredrik Söderquist <f...@opera.com>
              Gerrit-Attention: Divyansh Mangal <dma...@microsoft.com>
              Gerrit-Comment-Date: Mon, 22 Jun 2026 08:51:09 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              Comment-In-Reply-To: Fredrik Söderquist <f...@opera.com>
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Fredrik Söderquist (Gerrit)

              unread,
              Jun 22, 2026, 7:59:19 AM (7 days ago) Jun 22
              to Virali Purbey, Divyansh Mangal, Olga Gerchikov, Menard, Alexis, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
              Attention needed from Divyansh Mangal, Vinay Singh and Virali Purbey

              Fredrik Söderquist added 4 comments

              File third_party/blink/renderer/core/svg/svg_path_element.cc
              Line 125, Patchset 12: // TODO(crbug.com/40441025): Write the byte stream directly into SVGPath
              // once lazy attribute sync fires Will/DidModifyAttribute.
              Fredrik Söderquist . resolved

              I don't think this should be blocked on this - it's a pre-existing issue.

              Virali Purbey

              Agreed, it's pre-existing. I'll leave the TODO and not block this CL on it.

              Fredrik Söderquist

              I didn't mean that it would block this CL, but block the use of the more efficient method of changing the `SVGPath` directly. (Even just doing a lazy-sync explicitly should be faster than the current approach because it avoids passing through a string.)

              Line 129, Patchset 12: ? g_empty_atom
              Fredrik Söderquist . resolved

              I guess this needs to be defined. I.e if setting an empty list should set the attribute to an empty string or remove it. For list-valued attributes I believe we have the latter behavior, and this is sort of that.

              Virali Purbey

              Done. An empty result now removes the `d` attribute (rather than setting it to ""), matching the behavior of other list-valued attributes. Updated the tests accordingly.

              Fredrik Söderquist

              Just changing `g_empty_atom` to `g_null_atom` would've been enough.

              File third_party/blink/web_tests/external/wpt/svg/path/interfaces/SVGPathSegment.svg
              Line 18, Patchset 14 (Parent): assert_not_equals(track.getPathSegmentAtLength, undefined);
              Fredrik Söderquist . unresolved

              Why are you removing this line?

              It seems like this test could be merged into a relevant one of those you added. This is now just a duplicate.

              File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-css-d.html
              Line 26, Patchset 14 (Latest): // TODO(crbug.com/40441025): The exact d serialization produced by
              // setPathData() is not yet specified; this pins Chromium's current output.
              Fredrik Söderquist . unresolved

              Don't add "our" TODOs in WPTs. You can mark the test with `.tentative.` for the time being. The existing test seems to already rely on a certain serialization though, so it seems reasonable to follow suit.

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Divyansh Mangal
              • Vinay Singh
              • Virali Purbey
              Submit Requirements:
                • requirement satisfiedCode-Coverage
                • requirement is not satisfiedCode-Owners
                • requirement is not satisfiedCode-Review
                • requirement is not satisfiedNo-Unresolved-Comments
                • requirement is not satisfiedReview-Enforcement
                Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                Gerrit-MessageType: comment
                Gerrit-Project: chromium/src
                Gerrit-Branch: main
                Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
                Gerrit-Change-Number: 7863903
                Gerrit-PatchSet: 14
                Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
                Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
                Gerrit-Reviewer: Fredrik Söderquist <f...@opera.com>
                Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
                Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
                Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
                Gerrit-CC: Menard, Alexis <alexis...@intel.com>
                Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
                Gerrit-CC: Stephen Chenney <sche...@chromium.org>
                Gerrit-Attention: Vinay Singh <vinay...@microsoft.com>
                Gerrit-Attention: Virali Purbey <virali...@microsoft.com>
                Gerrit-Attention: Divyansh Mangal <dma...@microsoft.com>
                Gerrit-Comment-Date: Mon, 22 Jun 2026 11:58:58 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                Comment-In-Reply-To: Virali Purbey <virali...@microsoft.com>
                Comment-In-Reply-To: Fredrik Söderquist <f...@opera.com>
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Virali Purbey (Gerrit)

                unread,
                Jun 23, 2026, 5:58:36 AM (6 days ago) Jun 23
                to Fredrik Söderquist, Divyansh Mangal, Olga Gerchikov, Menard, Alexis, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
                Attention needed from Divyansh Mangal, Fredrik Söderquist and Vinay Singh

                Virali Purbey added 2 comments

                File third_party/blink/web_tests/external/wpt/svg/path/interfaces/SVGPathSegment.svg
                Line 18, Patchset 14 (Parent): assert_not_equals(track.getPathSegmentAtLength, undefined);
                Fredrik Söderquist . resolved

                Why are you removing this line?

                It seems like this test could be merged into a relevant one of those you added. This is now just a duplicate.

                Virali Purbey

                Removed the test from here.

                File third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-css-d.html
                Line 26, Patchset 14: // TODO(crbug.com/40441025): The exact d serialization produced by

                // setPathData() is not yet specified; this pins Chromium's current output.
                Fredrik Söderquist . resolved

                Don't add "our" TODOs in WPTs. You can mark the test with `.tentative.` for the time being. The existing test seems to already rely on a certain serialization though, so it seems reasonable to follow suit.

                Virali Purbey

                Removed and marked it as tentative.

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Divyansh Mangal
                • Fredrik Söderquist
                • Vinay Singh
                Submit Requirements:
                  • requirement satisfiedCode-Coverage
                  • requirement is not satisfiedCode-Owners
                  • requirement is not satisfiedCode-Review
                  • requirement is not satisfiedReview-Enforcement
                  Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                  Gerrit-MessageType: comment
                  Gerrit-Project: chromium/src
                  Gerrit-Branch: main
                  Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
                  Gerrit-Change-Number: 7863903
                  Gerrit-PatchSet: 15
                  Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
                  Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
                  Gerrit-Reviewer: Fredrik Söderquist <f...@opera.com>
                  Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
                  Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
                  Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                  Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
                  Gerrit-CC: Menard, Alexis <alexis...@intel.com>
                  Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
                  Gerrit-CC: Stephen Chenney <sche...@chromium.org>
                  Gerrit-Attention: Vinay Singh <vinay...@microsoft.com>
                  Gerrit-Attention: Fredrik Söderquist <f...@opera.com>
                  Gerrit-Attention: Divyansh Mangal <dma...@microsoft.com>
                  Gerrit-Comment-Date: Tue, 23 Jun 2026 09:58:12 +0000
                  Gerrit-HasComments: Yes
                  Gerrit-Has-Labels: No
                  Comment-In-Reply-To: Fredrik Söderquist <f...@opera.com>
                  satisfied_requirement
                  unsatisfied_requirement
                  open
                  diffy

                  Fredrik Söderquist (Gerrit)

                  unread,
                  Jun 23, 2026, 9:50:40 AM (6 days ago) Jun 23
                  to Virali Purbey, Divyansh Mangal, Olga Gerchikov, Menard, Alexis, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
                  Attention needed from Divyansh Mangal, Vinay Singh and Virali Purbey

                  Fredrik Söderquist voted Code-Review+1

                  Code-Review+1
                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Divyansh Mangal
                  • Vinay Singh
                  • Virali Purbey
                  Submit Requirements:
                  • requirement satisfiedCode-Coverage
                  • requirement satisfiedCode-Owners
                  • requirement satisfiedCode-Review
                  • requirement satisfiedReview-Enforcement
                  Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                  Gerrit-MessageType: comment
                  Gerrit-Project: chromium/src
                  Gerrit-Branch: main
                  Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
                  Gerrit-Change-Number: 7863903
                  Gerrit-PatchSet: 16
                  Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
                  Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
                  Gerrit-Reviewer: Fredrik Söderquist <f...@opera.com>
                  Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
                  Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
                  Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                  Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
                  Gerrit-CC: Menard, Alexis <alexis...@intel.com>
                  Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
                  Gerrit-CC: Stephen Chenney <sche...@chromium.org>
                  Gerrit-Attention: Vinay Singh <vinay...@microsoft.com>
                  Gerrit-Attention: Virali Purbey <virali...@microsoft.com>
                  Gerrit-Attention: Divyansh Mangal <dma...@microsoft.com>
                  Gerrit-Comment-Date: Tue, 23 Jun 2026 13:50:07 +0000
                  Gerrit-HasComments: No
                  Gerrit-Has-Labels: Yes
                  satisfied_requirement
                  open
                  diffy

                  Blink W3C Test Autoroller (Gerrit)

                  unread,
                  Jun 23, 2026, 10:10:08 AM (6 days ago) Jun 23
                  to Virali Purbey, Fredrik Söderquist, Divyansh Mangal, Olga Gerchikov, Menard, Alexis, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
                  Attention needed from Divyansh Mangal, Vinay Singh and Virali Purbey

                  Message from Blink W3C Test Autoroller

                  Exportable changes to web-platform-tests were detected in this CL and a pull request in the upstream repo has been made: https://github.com/web-platform-tests/wpt/pull/60835.

                  When this CL lands, the bot will automatically merge the PR on GitHub if the required GitHub checks pass; otherwise, ecosystem-infra@ team will triage the failures and may contact you.

                  WPT Export docs:
                  https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md#Automatic-export-process

                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Divyansh Mangal
                  • Vinay Singh
                  • Virali Purbey
                  Submit Requirements:
                  • requirement satisfiedCode-Coverage
                  • requirement satisfiedCode-Owners
                  • requirement satisfiedCode-Review
                  • requirement satisfiedReview-Enforcement
                  Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                  Gerrit-MessageType: comment
                  Gerrit-Project: chromium/src
                  Gerrit-Branch: main
                  Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
                  Gerrit-Change-Number: 7863903
                  Gerrit-PatchSet: 16
                  Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
                  Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
                  Gerrit-Reviewer: Fredrik Söderquist <f...@opera.com>
                  Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
                  Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
                  Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
                  Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                  Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
                  Gerrit-CC: Menard, Alexis <alexis...@intel.com>
                  Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
                  Gerrit-CC: Stephen Chenney <sche...@chromium.org>
                  Gerrit-Attention: Vinay Singh <vinay...@microsoft.com>
                  Gerrit-Attention: Virali Purbey <virali...@microsoft.com>
                  Gerrit-Attention: Divyansh Mangal <dma...@microsoft.com>
                  Gerrit-Comment-Date: Tue, 23 Jun 2026 14:09:50 +0000
                  Gerrit-HasComments: No
                  Gerrit-Has-Labels: No
                  satisfied_requirement
                  open
                  diffy

                  Divyansh Mangal (Gerrit)

                  unread,
                  Jun 23, 2026, 11:50:34 AM (6 days ago) Jun 23
                  to Virali Purbey, Blink W3C Test Autoroller, Fredrik Söderquist, Olga Gerchikov, Menard, Alexis, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
                  Attention needed from Vinay Singh and Virali Purbey

                  Divyansh Mangal voted Code-Review+1

                  Code-Review+1
                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Vinay Singh
                  • Virali Purbey
                  Gerrit-Comment-Date: Tue, 23 Jun 2026 15:49:52 +0000
                  Gerrit-HasComments: No
                  Gerrit-Has-Labels: Yes
                  satisfied_requirement
                  open
                  diffy

                  Virali Purbey (Gerrit)

                  unread,
                  Jun 24, 2026, 12:38:42 AM (5 days ago) Jun 24
                  to Divyansh Mangal, Blink W3C Test Autoroller, Fredrik Söderquist, Olga Gerchikov, Menard, Alexis, Vinay Singh, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org
                  Attention needed from Vinay Singh

                  Virali Purbey voted Commit-Queue+2

                  Commit-Queue+2
                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Vinay Singh
                  Gerrit-Comment-Date: Wed, 24 Jun 2026 04:38:08 +0000
                  Gerrit-HasComments: No
                  Gerrit-Has-Labels: Yes
                  satisfied_requirement
                  open
                  diffy

                  Chromium LUCI CQ (Gerrit)

                  unread,
                  Jun 24, 2026, 1:00:38 AM (5 days ago) Jun 24
                  to Virali Purbey, Divyansh Mangal, Blink W3C Test Autoroller, Fredrik Söderquist, Olga Gerchikov, Menard, Alexis, Vinay Singh, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org

                  Chromium LUCI CQ submitted the change

                  Change information

                  Commit message:
                  [SVG] Implement `setPathData()` on `SVGPathElement`

                  Implements `setPathData(sequence<SVGPathSegment> pathData)` from the
                  SVG Paths spec [1] on `SVGPathElement`.

                  Valid segments are built into an SVGPathByteStream (via
                  SVGPathByteStreamBuilder), then applied through `setAttribute("d", …)`
                  so the existing mutation pipeline (invalidation, <use> instances,
                  MutationObservers) fires. A leading non-moveto yields an empty path;
                  on the first invalid segment (unknown type, wrong arity, non-finite
                  value, non-binary arc flag) that segment and all after it are dropped.

                  Gated behind the existing experimental runtime flag `SVGPathDataAPI`.
                  Instrumented via the `SVGPathElementSetPathData` use counter.

                  [1] https://svgwg.org/specs/paths/#__svg__SVGPathData__setPathData

                  Design: https://docs.google.com/document/d/1uCVUqYGKgsCCu7LEtEdO3Yuea-MT-I2XsU6Eoe3mlQI/edit?usp=sharing
                  Bug: 40441025
                  Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
                  Reviewed-by: Fredrik Söderquist <f...@opera.com>
                  Reviewed-by: Divyansh Mangal <dma...@microsoft.com>
                  Commit-Queue: Virali Purbey <virali...@microsoft.com>
                  Cr-Commit-Position: refs/heads/main@{#1651484}
                  Files:
                  • M android_webview/test/data/web_tests/webexposed/global-interface-listing-expected.txt
                  • M third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
                  • M third_party/blink/renderer/core/svg/build.gni
                  • M third_party/blink/renderer/core/svg/svg_path_data.h
                  • M third_party/blink/renderer/core/svg/svg_path_data.idl
                  • M third_party/blink/renderer/core/svg/svg_path_element.cc
                  • M third_party/blink/renderer/core/svg/svg_path_element.h
                  • A third_party/blink/renderer/core/svg/svg_path_segments_source.cc
                  • A third_party/blink/renderer/core/svg/svg_path_segments_source.h
                  • M third_party/blink/renderer/core/svg/svg_path_string_source.cc
                  • M third_party/blink/renderer/core/svg/svg_path_utilities.cc
                  • M third_party/blink/renderer/core/svg/svg_path_utilities.h
                  • M third_party/blink/web_tests/external/wpt/svg/path/interfaces/SVGPathSegment-expected.txt
                  • M third_party/blink/web_tests/external/wpt/svg/path/interfaces/SVGPathSegment.svg
                  • A third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-css-d.tentative.html
                  • A third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-during-animation.html
                  • A third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-malformed.html
                  • A third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-mutation-observer.html
                  • A third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-overrides-d.html
                  • A third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-plain-object.html
                  • A third_party/blink/web_tests/external/wpt/svg/path/interfaces/setPathData-segment-types.html
                  • M third_party/blink/web_tests/external/wpt/svg/types/scripted/SVGGeometryElement.getTotalLength-01-expected.txt
                  • A third_party/blink/web_tests/svg/dom/path-set-path-data-use-counter.html
                  • M third_party/blink/web_tests/webexposed/element-instance-property-listing-expected.txt
                  • M third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
                  • M tools/metrics/histograms/metadata/blink/enums.xml
                  Change size: L
                  Delta: 26 files changed, 802 insertions(+), 83 deletions(-)
                  Branch: refs/heads/main
                  Submit Requirements:
                  • requirement satisfiedCode-Review: +1 by Fredrik Söderquist, +1 by Divyansh Mangal
                  Open in Gerrit
                  Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                  Gerrit-MessageType: merged
                  Gerrit-Project: chromium/src
                  Gerrit-Branch: main
                  Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
                  Gerrit-Change-Number: 7863903
                  Gerrit-PatchSet: 17
                  Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
                  Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
                  Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
                  Gerrit-Reviewer: Fredrik Söderquist <f...@opera.com>
                  Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
                  Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
                  Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
                  open
                  diffy
                  satisfied_requirement

                  Blink W3C Test Autoroller (Gerrit)

                  unread,
                  Jun 24, 2026, 3:17:27 AM (5 days ago) Jun 24
                  to Chromium LUCI CQ, Virali Purbey, Divyansh Mangal, Fredrik Söderquist, Olga Gerchikov, Menard, Alexis, Vinay Singh, android-bu...@system.gserviceaccount.com, Chromium Metrics Reviews, chromium...@chromium.org, Dirk Schulze, Stephen Chenney, blink-revie...@chromium.org, android-web...@chromium.org, ashleynewson+watch-...@chromium.org, asvitkine...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, fmalit...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, pdr+svgw...@chromium.org

                  Message from Blink W3C Test Autoroller

                  The WPT PR for this CL has been merged upstream! https://github.com/web-platform-tests/wpt/pull/60835

                  Open in Gerrit

                  Related details

                  Attention set is empty
                  Submit Requirements:
                  • requirement satisfiedCode-Coverage
                  • requirement satisfiedCode-Owners
                  • requirement satisfiedCode-Review
                  • requirement satisfiedReview-Enforcement
                  Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
                  Gerrit-MessageType: comment
                  Gerrit-Project: chromium/src
                  Gerrit-Branch: main
                  Gerrit-Change-Id: I70419142ad23736d2e0e0f1a4ed4833e6c76fef8
                  Gerrit-Change-Number: 7863903
                  Gerrit-PatchSet: 17
                  Gerrit-Owner: Virali Purbey <virali...@microsoft.com>
                  Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
                  Gerrit-Reviewer: Divyansh Mangal <dma...@microsoft.com>
                  Gerrit-Reviewer: Fredrik Söderquist <f...@opera.com>
                  Gerrit-Reviewer: Vinay Singh <vinay...@microsoft.com>
                  Gerrit-Reviewer: Virali Purbey <virali...@microsoft.com>
                  Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
                  Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                  Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
                  Gerrit-CC: Menard, Alexis <alexis...@intel.com>
                  Gerrit-CC: Olga Gerchikov <gerc...@microsoft.com>
                  Gerrit-CC: Stephen Chenney <sche...@chromium.org>
                  Gerrit-Comment-Date: Wed, 24 Jun 2026 07:17:00 +0000
                  Gerrit-HasComments: No
                  Gerrit-Has-Labels: No
                  satisfied_requirement
                  open
                  diffy
                  Reply all
                  Reply to author
                  Forward
                  0 new messages