Skip to content

docs(research): expand chromium SVG research notes#697

Merged
softmarshmallow merged 3 commits intomainfrom
docs/svg-research
Apr 26, 2026
Merged

docs(research): expand chromium SVG research notes#697
softmarshmallow merged 3 commits intomainfrom
docs/svg-research

Conversation

@softmarshmallow
Copy link
Copy Markdown
Member

@softmarshmallow softmarshmallow commented Apr 26, 2026

Summary

Backfills five missing topics in docs/wg/research/chromium/svg/, expanding coverage of how Blink renders SVG. No existing files modified except index.md (added rows for the new docs).

New documents

File Scope
animation-and-smil.md SMIL pipeline (sandwich model, sync-base/event timing, sampling position in the per-frame flow) and CSS / Web Animations on SVG with SMIL precedence rules
animated-properties-idl.md SVGAnimatedProperty<T> baseVal/animVal slots, tear-offs, lazy attribute synchronization, CSS bridge
hit-testing.md Path-based hit algorithm, full pointer-events value table, stroke widening, <use> event retargeting
accessibility.md SVG in the AX tree (kSvgRoot, kGraphicsSymbol, <title>/<desc>, ARIA opt-ins). Notes the no-dedicated-AXSVG*-class current state
migration-status.md Snapshot of LayoutNG / CompositeAfterPaint / SMIL status; what's stable vs in-flight as of mid-2026

Style match

Each new doc follows the conventions of the existing topical files in the directory:

  • Frontmatter (title, tags)
  • H1 matching frontmatter
  • Code excerpts pulled from the Chromium tree (third_party/blink/renderer/core/...)
  • Cross-references to companion docs (./other.md, ../other.md)
  • File-reference table at the bottom

Surgical change set

  • 5 new files
  • 1 modified file (index.md, only to add table rows for the new docs)
  • 0 existing files altered

Test plan

  • Docs build (pnpm docs:build / equivalent) passes — no MDX parse errors
  • Frontmatter tags are valid (matching existing tag set used by sibling docs)
  • Internal links resolve (./pipeline.md, ../property-trees.md, etc.)
  • No broken anchors in index.md table rows

Summary by CodeRabbit

  • Documentation
    • Added in-depth research docs covering SVG accessibility mapping, animated-property semantics, SMIL/animation behavior, and hit-testing
    • Expanded the SVG research index with broader technical references, a glossary, and pipeline overview
    • Added a migration/status snapshot summarizing SVG integration progress and active work items

…ation notes

Backfill five topics that were missing from the chromium/svg/ research
directory, expanding coverage of how Blink renders SVG:

- animation-and-smil.md: SMIL pipeline (sandwich model, sync-base/event
  timing, sampling position in the per-frame flow), and how CSS / Web
  Animations on SVG coexist with SMIL precedence rules.
- animated-properties-idl.md: SVGAnimatedProperty<T> baseVal/animVal
  slots, tear-offs, lazy attribute synchronization, CSS bridge.
- hit-testing.md: path-based hit algorithm, full pointer-events value
  table, stroke widening, <use> event retargeting.
- accessibility.md: SVG in the AX tree (kSvgRoot, kGraphicsSymbol,
  <title>/<desc>, ARIA opt-ins). Notes the no-dedicated-AXSVG-class
  current state.
- migration-status.md: snapshot of LayoutNG / CompositeAfterPaint /
  SMIL status; what's stable vs in-flight as of mid-2026.

index.md updated to list the new files.

No existing files modified.
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
blog Ready Ready Preview, Comment Apr 26, 2026 11:06am
docs Ready Ready Preview, Comment Apr 26, 2026 11:06am
grida Ready Ready Preview, Comment Apr 26, 2026 11:06am
viewer Ready Ready Preview, Comment Apr 26, 2026 11:06am
3 Skipped Deployments
Project Deployment Actions Updated (UTC)
backgrounds Ignored Ignored Preview Apr 26, 2026 11:06am
code Ignored Ignored Apr 26, 2026 11:06am
legacy Ignored Ignored Apr 26, 2026 11:06am

Request Review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 26, 2026

Walkthrough

Adds five new Chromium/Blink SVG research documents (accessibility, SMIL animation, animated-property IDL, hit-testing, migration-status) and updates the SVG docs index with links, directory overview, resource invalidation details, HTML comparisons, and a glossary.

Changes

Cohort / File(s) Summary
SVG Research Pages
docs/wg/research/chromium/svg/accessibility.md, docs/wg/research/chromium/svg/animation-and-smil.md, docs/wg/research/chromium/svg/animated-properties-idl.md, docs/wg/research/chromium/svg/hit-testing.md, docs/wg/research/chromium/svg/migration-status.md
Adds five new research docs covering: AX-tree mapping and role rules; SMIL animation model, timing, sampling, and interaction with CSS/Web Animations; internal baseVal/animVal semantics and synchronization for animated properties; SVG hit-testing algorithms and pointer-events rules; and a mid-2026 migration/status snapshot.
Index and Supporting Docs
docs/wg/research/chromium/svg/index.md
Updates index to reference the new pages, reformat the documents table, add a Blink SVG directory overview, resource invalidation write-up, HTML vs SVG comparison, and glossary entries.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Suggested labels

svg

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs(research): expand chromium SVG research notes' directly summarizes the main change: adding and expanding internal research documentation for Chromium's SVG implementation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/svg-research

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 9

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/wg/research/chromium/svg/index.md (1)

1-9: ⚠️ Potential issue | 🟡 Minor

Add missing frontmatter fields required by coding guidelines.

The frontmatter is missing description, keywords, and format: md fields. As per coding guidelines:

  • For actively maintained docs in docs/wg/**, prefer frontmatter with title, description, and keywords.
  • For most wg/ Markdown pages that do not use MDX/JSX features, include format: md in frontmatter.
  • Using format: md is especially important here since the document contains numerous unescaped angle brackets (<svg>, <use>, <clipPath>, etc.) which can cause MDX parsing issues.
📝 Proposed frontmatter additions
 ---
 title: "Chromium SVG Rendering Research"
+description: "Research documentation covering Blink's SVG rendering pipeline, from DOM construction through layout, paint, and compositing"
+keywords:
+  - blink
+  - svg rendering
+  - layout
+  - paint pipeline
+format: md
 tags:
   - internal

As per coding guidelines: For actively maintained docs in docs/wg/**, prefer frontmatter with title, description, and keywords; for most wg/ and reference/ Markdown pages that do not use MDX/JSX features, include format: md in frontmatter.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/index.md` around lines 1 - 9, Add the missing
frontmatter fields to the existing YAML block that currently contains title:
"Chromium SVG Rendering Research": add a descriptive `description` string
summarizing the doc, add a `keywords` array (e.g.,
["chromium","svg","rendering","research"]) and add `format: md` so the page is
treated as plain Markdown and MDX parsing won’t choke on unescaped angle
brackets; update the frontmatter near the existing `title` entry so the top of
the file includes `title`, `description`, `keywords`, and `format: md`.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/wg/research/chromium/svg/accessibility.md`:
- Around line 1-10: Add the missing frontmatter fields to the top of the
Markdown: keep the existing title and add a concise description (description:
"…"), a keywords array (keywords: [ "chromium", "svg", "accessibility", ... ])
and include format: md to ensure the file is treated as plain Markdown (this
prevents MDX parsing issues with unescaped angle brackets); update the
frontmatter block that contains title to include these three keys.

In `@docs/wg/research/chromium/svg/animated-properties-idl.md`:
- Around line 1-9: The frontmatter for the document with title "Chromium SVG
Animated Properties (baseVal / animVal)" is missing required fields; update the
YAML frontmatter to add a descriptive `description` summarizing the doc, a
`keywords` array (e.g., ["chromium","svg","animated
properties","baseVal","animVal","rendering","research"]) and include `format:
md` so the file is treated as plain Markdown (prevents MDX parsing issues with
unescaped angle brackets); modify the existing frontmatter block at the top of
the file (around the `title:` entry) to include these three fields.
- Around line 139-143: Add a language specifier to the fenced code block showing
the directory tree in docs/wg/research/chromium/svg/animated-properties-idl.md:
locate the triple-backtick block containing "core/svg/properties/" and replace
the opening fence with a language identifier such as ```text (or ```plaintext)
so the directory listing renders consistently across renderers.

In `@docs/wg/research/chromium/svg/animation-and-smil.md`:
- Around line 1-9: Add the missing frontmatter fields to the top YAML block:
include a descriptive description string for the page (e.g., summarizing
"Chromium SVG Animation and SMIL"), a keywords array (e.g.,
["chromium","svg","animation","smil","rendering","research"]), and the literal
field format: md; keep the existing title field unchanged. Ensure the new fields
are placed inside the existing frontmatter block (alongside title) so unescaped
angle brackets are treated as plain markdown.
- Line 1: Add the missing frontmatter key by inserting `format: md` into the
YAML frontmatter block that starts with the title "Chromium SVG Animation and
SMIL" so the frontmatter becomes title, format, tags, etc.; after updating the
frontmatter, run the repository formatter locally (pnpm fmt) to fix the oxfmt
issues before committing.

In `@docs/wg/research/chromium/svg/hit-testing.md`:
- Around line 1-9: Add the missing frontmatter fields to the top YAML block:
keep the existing title and add description (one-sentence summary of the doc),
keywords (array with relevant tags like chromium, svg, hit-testing, rendering),
and format: md; ensure the YAML block remains valid (three dashes start/end) and
place format: md to prevent MDX parsing issues due to unescaped angle brackets
(e.g., <use>, <text>, <clipPath>).

In `@docs/wg/research/chromium/svg/migration-status.md`:
- Around line 1-9: Add the missing frontmatter fields at the top of the
document: keep the existing title ("Chromium SVG Migration Status"), and add a
descriptive `description:` line summarizing the doc, a `keywords:` array with
relevant tags (e.g., chromium, svg, rendering, migration), and set `format: md`;
ensure these fields are placed in the YAML frontmatter block alongside `title`
so unescaped angle brackets render correctly and the doc complies with
`docs/wg/**` guidelines.
- Around line 80-86: The table header currently defines two columns ("Subsystem
| Status") but the row for `SVGAnimatedProperty<T>` includes a third cell with a
cross-reference to animated-properties-idl.md, causing a structural mismatch;
fix by adding a third "Notes" column to the header and separator and move the
`[animated-properties-idl.md](./animated-properties-idl.md)` reference into that
new Notes cell for the `SVGAnimatedProperty<T>` / Status row so all rows have
three pipe-separated cells consistently.
- Line 1: Update the Markdown frontmatter by adding the missing `format: md`
field alongside the existing `title` and `tags` entries in the file's top-level
frontmatter block (ensure the block starts with `---` and ends with `---`);
specifically, modify the frontmatter that contains `title: "Chromium SVG
Migration Status"` to include `format: md` and the listed tags so the page
conforms to Docusaurus `docs/wg/**/*.md` frontmatter requirements.

---

Outside diff comments:
In `@docs/wg/research/chromium/svg/index.md`:
- Around line 1-9: Add the missing frontmatter fields to the existing YAML block
that currently contains title: "Chromium SVG Rendering Research": add a
descriptive `description` string summarizing the doc, add a `keywords` array
(e.g., ["chromium","svg","rendering","research"]) and add `format: md` so the
page is treated as plain Markdown and MDX parsing won’t choke on unescaped angle
brackets; update the frontmatter near the existing `title` entry so the top of
the file includes `title`, `description`, `keywords`, and `format: md`.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 9ddb8488-adcc-4fbc-893b-377e201dc417

📥 Commits

Reviewing files that changed from the base of the PR and between 50066e5 and d6cf26c.

📒 Files selected for processing (6)
  • docs/wg/research/chromium/svg/accessibility.md
  • docs/wg/research/chromium/svg/animated-properties-idl.md
  • docs/wg/research/chromium/svg/animation-and-smil.md
  • docs/wg/research/chromium/svg/hit-testing.md
  • docs/wg/research/chromium/svg/index.md
  • docs/wg/research/chromium/svg/migration-status.md

Comment on lines +1 to +10
---
title: "Chromium SVG Accessibility"
tags:
- internal
- research
- chromium
- rendering
- svg
- accessibility
---
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add missing frontmatter fields required by coding guidelines.

The frontmatter is missing description, keywords, and format: md fields. As per coding guidelines:

  • For actively maintained docs in docs/wg/**, prefer frontmatter with title, description, and keywords.
  • For most wg/ Markdown pages that do not use MDX/JSX features, include format: md in frontmatter.
  • Using format: md is important here since the document contains numerous unescaped angle brackets (<svg>, <title>, <desc>, <use>, etc.).
📝 Proposed frontmatter additions
 ---
 title: "Chromium SVG Accessibility"
+description: "Documentation of how SVG elements map into Blink's AX tree, including role mapping, title/desc handling, ARIA integration, and special cases"
+keywords:
+  - accessibility
+  - ax tree
+  - aria
+  - role mapping
+  - svg-aam
+format: md
 tags:
   - internal

As per coding guidelines: For actively maintained docs in docs/wg/**, prefer frontmatter with title, description, and keywords; for most wg/ and reference/ Markdown pages that do not use MDX/JSX features, include format: md in frontmatter.

🧰 Tools
🪛 GitHub Actions: fmt

[error] 1-1: oxfmt --check reported a formatting issue in this file.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/accessibility.md` around lines 1 - 10, Add the
missing frontmatter fields to the top of the Markdown: keep the existing title
and add a concise description (description: "…"), a keywords array (keywords: [
"chromium", "svg", "accessibility", ... ]) and include format: md to ensure the
file is treated as plain Markdown (this prevents MDX parsing issues with
unescaped angle brackets); update the frontmatter block that contains title to
include these three keys.

Comment on lines +1 to +9
---
title: "Chromium SVG Animated Properties (baseVal / animVal)"
tags:
- internal
- research
- chromium
- rendering
- svg
---
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add missing frontmatter fields required by coding guidelines.

The frontmatter is missing description, keywords, and format: md fields. As per coding guidelines:

  • For actively maintained docs in docs/wg/**, prefer frontmatter with title, description, and keywords.
  • For most wg/ Markdown pages that do not use MDX/JSX features, include format: md in frontmatter.
  • Using format: md is important here since the document contains numerous unescaped angle brackets (SVGAnimatedLength, SVGRectElement, etc.).
📝 Proposed frontmatter additions
 ---
 title: "Chromium SVG Animated Properties (baseVal / animVal)"
+description: "Documentation of Blink's SVGAnimatedProperty dual-slot model (baseVal/animVal), tear-offs, lazy attribute sync, and CSS cascade integration"
+keywords:
+  - svg animated properties
+  - baseval
+  - animval
+  - tear-offs
+  - lazy sync
+format: md
 tags:
   - internal

As per coding guidelines: For actively maintained docs in docs/wg/**, prefer frontmatter with title, description, and keywords; for most wg/ and reference/ Markdown pages that do not use MDX/JSX features, include format: md in frontmatter.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
---
title: "Chromium SVG Animated Properties (baseVal / animVal)"
tags:
- internal
- research
- chromium
- rendering
- svg
---
---
title: "Chromium SVG Animated Properties (baseVal / animVal)"
description: "Documentation of Blink's SVGAnimatedProperty dual-slot model (baseVal/animVal), tear-offs, lazy attribute sync, and CSS cascade integration"
keywords:
- svg animated properties
- baseval
- animval
- tear-offs
- lazy sync
format: md
tags:
- internal
- research
- chromium
- rendering
- svg
---
🧰 Tools
🪛 GitHub Actions: fmt

[error] 1-1: oxfmt --check reported a formatting issue in this file.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/animated-properties-idl.md` around lines 1 - 9,
The frontmatter for the document with title "Chromium SVG Animated Properties
(baseVal / animVal)" is missing required fields; update the YAML frontmatter to
add a descriptive `description` summarizing the doc, a `keywords` array (e.g.,
["chromium","svg","animated
properties","baseVal","animVal","rendering","research"]) and include `format:
md` so the file is treated as plain Markdown (prevents MDX parsing issues with
unescaped angle brackets); modify the existing frontmatter block at the top of
the file (around the `title:` entry) to include these three fields.

Comment on lines +139 to +143
```
core/svg/properties/
svg_property_tear_off.h SVGPropertyTearOff<T>
svg_list_property_tear_off_helper.h
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add language specifier to fenced code block.

The code block at line 139 is missing a language specifier. Even for directory tree structures, adding a language identifier (e.g., text or plaintext) improves rendering consistency.

📝 Proposed fix
-```
+```text
 core/svg/properties/
   svg_property_tear_off.h          SVGPropertyTearOff<T>
   svg_list_property_tear_off_helper.h
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 139-139: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/animated-properties-idl.md` around lines 139 -
143, Add a language specifier to the fenced code block showing the directory
tree in docs/wg/research/chromium/svg/animated-properties-idl.md: locate the
triple-backtick block containing "core/svg/properties/" and replace the opening
fence with a language identifier such as ```text (or ```plaintext) so the
directory listing renders consistently across renderers.

Comment on lines +1 to +9
---
title: "Chromium SVG Animation and SMIL"
tags:
- internal
- research
- chromium
- rendering
- svg
---
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add missing frontmatter fields required by coding guidelines.

The frontmatter is missing description, keywords, and format: md fields. As per coding guidelines:

  • For actively maintained docs in docs/wg/**, prefer frontmatter with title, description, and keywords.
  • For most wg/ Markdown pages that do not use MDX/JSX features, include format: md in frontmatter.
  • Using format: md is important here since the document contains numerous unescaped angle brackets (<animate>, <set>, <animateTransform>, <svg>, etc.).
📝 Proposed frontmatter additions
 ---
 title: "Chromium SVG Animation and SMIL"
+description: "Documentation of Blink's SVG animation architecture covering SMIL (sandwich model, sync-base timing, event-driven intervals) and CSS/Web Animations integration"
+keywords:
+  - smil
+  - svg animation
+  - sandwich model
+  - sync-base timing
+  - web animations
+format: md
 tags:
   - internal

As per coding guidelines: For actively maintained docs in docs/wg/**, prefer frontmatter with title, description, and keywords; for most wg/ and reference/ Markdown pages that do not use MDX/JSX features, include format: md in frontmatter.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
---
title: "Chromium SVG Animation and SMIL"
tags:
- internal
- research
- chromium
- rendering
- svg
---
---
title: "Chromium SVG Animation and SMIL"
description: "Documentation of Blink's SVG animation architecture covering SMIL (sandwich model, sync-base timing, event-driven intervals) and CSS/Web Animations integration"
keywords:
- smil
- svg animation
- sandwich model
- sync-base timing
- web animations
format: md
tags:
- internal
- research
- chromium
- rendering
- svg
---
🧰 Tools
🪛 GitHub Actions: fmt

[error] 1-1: oxfmt --check reported a formatting issue in this file.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/animation-and-smil.md` around lines 1 - 9, Add
the missing frontmatter fields to the top YAML block: include a descriptive
description string for the page (e.g., summarizing "Chromium SVG Animation and
SMIL"), a keywords array (e.g.,
["chromium","svg","animation","smil","rendering","research"]), and the literal
field format: md; keep the existing title field unchanged. Ensure the new fields
are placed inside the existing frontmatter block (alongside title) so unescaped
angle brackets are treated as plain markdown.

@@ -0,0 +1,253 @@
---
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check what oxfmt would change
oxfmt --check docs/wg/research/chromium/svg/animation-and-smil.md || echo "Formatting differences detected"

# Show the diff
oxfmt --print-changes docs/wg/research/chromium/svg/animation-and-smil.md

Repository: gridaco/grida

Length of output: 197


🏁 Script executed:

cat -n docs/wg/research/chromium/svg/animation-and-smil.md

Repository: gridaco/grida

Length of output: 11821


🏁 Script executed:

# Search for oxfmt references and how it's used in the repo
rg "oxfmt" --type yaml --type toml --type json -A 2 -B 2

Repository: gridaco/grida

Length of output: 11021


🏁 Script executed:

# Check if there are other Markdown files with similar frontmatter patterns in the docs/wg directory
fd -e md 'docs/wg' | head -5 | xargs -I {} head -20 {}

Repository: gridaco/grida

Length of output: 391


🏁 Script executed:

# Check other docs/wg files to see the pattern
fd --full-path 'docs/wg' -e md | head -10 | xargs -I {} head -15 {}

Repository: gridaco/grida

Length of output: 2871


Add format: md to frontmatter and run formatter locally.

This file requires format: md in its frontmatter per the project guidelines for Markdown files in docs/wg/ without MDX/JSX features. Additionally, run pnpm fmt locally to address the oxfmt formatting issue flagged in CI.

Current frontmatter
---
title: "Chromium SVG Animation and SMIL"
tags:
  - internal
  - research
  - chromium
  - rendering
  - svg
---

Update to:

---
title: "Chromium SVG Animation and SMIL"
format: md
tags:
  - internal
  - research
  - chromium
  - rendering
  - svg
---
🧰 Tools
🪛 GitHub Actions: fmt

[error] 1-1: oxfmt --check reported a formatting issue in this file.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/animation-and-smil.md` at line 1, Add the
missing frontmatter key by inserting `format: md` into the YAML frontmatter
block that starts with the title "Chromium SVG Animation and SMIL" so the
frontmatter becomes title, format, tags, etc.; after updating the frontmatter,
run the repository formatter locally (pnpm fmt) to fix the oxfmt issues before
committing.

Comment on lines +1 to +9
---
title: "Chromium SVG Hit Testing"
tags:
- internal
- research
- chromium
- rendering
- svg
---
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add missing frontmatter fields required by coding guidelines.

The frontmatter is missing description, keywords, and format: md fields. As per coding guidelines:

  • For actively maintained docs in docs/wg/**, prefer frontmatter with title, description, and keywords.
  • For most wg/ Markdown pages that do not use MDX/JSX features, include format: md in frontmatter.
  • Using format: md is important here since the document contains numerous unescaped angle brackets (<use>, <text>, <clipPath>, etc.).
📝 Proposed frontmatter additions
 ---
 title: "Chromium SVG Hit Testing"
+description: "Documentation of Blink's path-based SVG hit-testing algorithm, pointer-events value mapping, stroke widening, and event retargeting"
+keywords:
+  - hit testing
+  - pointer-events
+  - path containment
+  - event retargeting
+format: md
 tags:
   - internal

As per coding guidelines: For actively maintained docs in docs/wg/**, prefer frontmatter with title, description, and keywords; for most wg/ and reference/ Markdown pages that do not use MDX/JSX features, include format: md in frontmatter.

🧰 Tools
🪛 GitHub Actions: fmt

[error] 1-1: oxfmt --check reported a formatting issue in this file.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/hit-testing.md` around lines 1 - 9, Add the
missing frontmatter fields to the top YAML block: keep the existing title and
add description (one-sentence summary of the doc), keywords (array with relevant
tags like chromium, svg, hit-testing, rendering), and format: md; ensure the
YAML block remains valid (three dashes start/end) and place format: md to
prevent MDX parsing issues due to unescaped angle brackets (e.g., <use>, <text>,
<clipPath>).

Comment on lines +1 to +9
---
title: "Chromium SVG Migration Status"
tags:
- internal
- research
- chromium
- rendering
- svg
---
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add missing frontmatter fields required by coding guidelines.

The frontmatter is missing description, keywords, and format: md fields. As per coding guidelines:

  • For actively maintained docs in docs/wg/**, prefer frontmatter with title, description, and keywords.
  • For most wg/ Markdown pages that do not use MDX/JSX features, include format: md in frontmatter.
  • Using format: md is important here since the document contains numerous unescaped angle brackets (<text>, <foreignObject>, <path>, etc.).
📝 Proposed frontmatter additions
 ---
 title: "Chromium SVG Migration Status"
+description: "Snapshot of Blink SVG rendering system migrations and stability status as of mid-2026, covering LayoutNG, CompositeAfterPaint, SMIL, and Skia integration"
+keywords:
+  - layoutng
+  - composite after paint
+  - smil
+  - migration status
+format: md
 tags:
   - internal

As per coding guidelines: For actively maintained docs in docs/wg/**, prefer frontmatter with title, description, and keywords; for most wg/ and reference/ Markdown pages that do not use MDX/JSX features, include format: md in frontmatter.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
---
title: "Chromium SVG Migration Status"
tags:
- internal
- research
- chromium
- rendering
- svg
---
---
title: "Chromium SVG Migration Status"
description: "Snapshot of Blink SVG rendering system migrations and stability status as of mid-2026, covering LayoutNG, CompositeAfterPaint, SMIL, and Skia integration"
keywords:
- layoutng
- composite after paint
- smil
- migration status
format: md
tags:
- internal
- research
- chromium
- rendering
- svg
---
🧰 Tools
🪛 GitHub Actions: fmt

[error] 1-1: oxfmt --check reported a formatting issue in this file.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/migration-status.md` around lines 1 - 9, Add
the missing frontmatter fields at the top of the document: keep the existing
title ("Chromium SVG Migration Status"), and add a descriptive `description:`
line summarizing the doc, a `keywords:` array with relevant tags (e.g.,
chromium, svg, rendering, migration), and set `format: md`; ensure these fields
are placed in the YAML frontmatter block alongside `title` so unescaped angle
brackets render correctly and the doc complies with `docs/wg/**` guidelines.

@@ -0,0 +1,122 @@
---
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check what oxfmt would change
oxfmt --check docs/wg/research/chromium/svg/migration-status.md || echo "Formatting differences detected"

# Show the diff
oxfmt --print-changes docs/wg/research/chromium/svg/migration-status.md

Repository: gridaco/grida

Length of output: 197


🏁 Script executed:

cat -n docs/wg/research/chromium/svg/migration-status.md

Repository: gridaco/grida

Length of output: 6999


Add missing format: md frontmatter field.

This Markdown documentation file should include format: md in frontmatter to prevent MDX-related parsing issues in Docusaurus. Update the frontmatter to:

---
title: "Chromium SVG Migration Status"
format: md
tags:
  - internal
  - research
  - chromium
  - rendering
  - svg
---

(Note: The original report about oxfmt formatting is incorrect—oxfmt is a JavaScript/TypeScript formatter and does not apply to Markdown files. The actual issue is the missing Docusaurus frontmatter field per the coding guidelines for docs/wg/**/*.md pages.)

🧰 Tools
🪛 GitHub Actions: fmt

[error] 1-1: oxfmt --check reported a formatting issue in this file.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/migration-status.md` at line 1, Update the
Markdown frontmatter by adding the missing `format: md` field alongside the
existing `title` and `tags` entries in the file's top-level frontmatter block
(ensure the block starts with `---` and ends with `---`); specifically, modify
the frontmatter that contains `title: "Chromium SVG Migration Status"` to
include `format: md` and the listed tags so the page conforms to Docusaurus
`docs/wg/**/*.md` frontmatter requirements.

Comment thread docs/wg/research/chromium/svg/migration-status.md Outdated
Add four appendix sections to chromium/svg/index.md so it serves as both
navigation hub and cross-cutting reference for content that doesn't fit
any single topical doc:

- "What's shared with HTML" — bird's-eye table of which Blink subsystems
  treat SVG identically to HTML and which have SVG-specific paths.
- "SVG resource invalidation" — the InvalidationMode flag enum, the
  per-resource-type mask mapping, and a step-by-step trace of how a
  setAttribute('r', '50') mutation propagates through the lifecycle.
- "Glossary" — disambiguation of cross-cutting terms (Renderer process vs
  pixel rendering, PaintLayer vs cc::Layer, baseVal/animVal, Sandwich,
  Tear-off, etc.) that the parent compositor glossary doesn't cover.
- Expanded "Source locations" — full file-tree map across blink/cc/viz/
  skia, including a note that Blink does not consume Skia's modules/svg.

Single-file change; consolidated into index.md rather than fragmenting
into multiple small files.
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (2)
docs/wg/research/chromium/svg/index.md (2)

1-9: ⚠️ Potential issue | 🟠 Major

Add missing frontmatter fields: description, keywords, and format: md.

The frontmatter is missing required fields and the format: md declaration. Since this file contains extensive angle bracket usage for SVG element names (<svg>, <clipPath>, <mask>, etc.), the format: md field is critical to prevent MDX parsing issues. As per coding guidelines, actively maintained docs in docs/wg/** should include title, description, and keywords, and non-MDX pages should declare format: md.

📝 Proposed fix to add missing frontmatter fields
 ---
 title: "Chromium SVG Rendering Research"
+description: "Comprehensive research documentation for Chromium's SVG rendering pipeline, covering DOM construction, layout, paint, compositing, SMIL animation, and resource management"
+keywords:
+  - chromium
+  - blink
+  - svg
+  - rendering
+  - layout
+  - paint
+  - smil
+  - animation
+format: md
 tags:
   - internal
   - research
   - chromium
   - rendering
   - svg
 ---
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/index.md` around lines 1 - 9, Add the missing
frontmatter fields by updating the YAML block to include a descriptive
`description` string, a `keywords` array (e.g.,
["chromium","svg","rendering","research"]) and `format: md`; keep the existing
`title` and `tags`, ensure the fields are valid YAML keys (`description`,
`keywords`, `format`) and placed inside the existing frontmatter delimiters so
MDX parsing won’t misinterpret angle-bracketed SVG markup.

1-218: ⚠️ Potential issue | 🟡 Minor

Add format: md frontmatter and language identifiers to fenced code blocks.

Per the coding guidelines, docs/wg/**/*.md pages without MDX/JSX features should include format: md in the frontmatter to prevent parsing issues. Additionally, the fenced code blocks at lines 59 and 163 are missing language identifiers; they should specify a language (e.g., ```plaintext or ```txt) or an appropriate identifier.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/index.md` around lines 1 - 218, Add "format:
md" to the existing YAML frontmatter (the leading --- block containing
title/tags) and add explicit language identifiers to the two fenced code blocks
that currently contain plain directory trees (the blocks showing the
"third_party/blink/renderer/" tree and the "cc/" tree under "Source locations");
change their opening fences from ``` to something like ```plaintext or ```text
so the code blocks are parsed correctly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/wg/research/chromium/svg/index.md`:
- Around line 59-85: The fenced code block that contains the directory tree
beginning with "third_party/blink/renderer/" needs a language identifier; change
the opening fence from ``` to ```text so the block (the lines showing core/svg/,
core/layout/svg/, cc/, components/viz/, third_party/skia/, etc.) is annotated as
text.
- Around line 163-184: The fenced code block containing the call-stack/trace
(starting with "Element::AttributeChanged" and lines including
"SVGElement::AttributeChanged", "SVGAnimatedNumber::AttributeChanged",
"LayoutSVGShape::SetNeedsShapeUpdate", etc.) needs a language identifier; add
"text" to the opening fence (i.e., change ``` to ```text) so the block is
correctly marked as plain text for static analysis and rendering.

---

Outside diff comments:
In `@docs/wg/research/chromium/svg/index.md`:
- Around line 1-9: Add the missing frontmatter fields by updating the YAML block
to include a descriptive `description` string, a `keywords` array (e.g.,
["chromium","svg","rendering","research"]) and `format: md`; keep the existing
`title` and `tags`, ensure the fields are valid YAML keys (`description`,
`keywords`, `format`) and placed inside the existing frontmatter delimiters so
MDX parsing won’t misinterpret angle-bracketed SVG markup.
- Around line 1-218: Add "format: md" to the existing YAML frontmatter (the
leading --- block containing title/tags) and add explicit language identifiers
to the two fenced code blocks that currently contain plain directory trees (the
blocks showing the "third_party/blink/renderer/" tree and the "cc/" tree under
"Source locations"); change their opening fences from ``` to something like
```plaintext or ```text so the code blocks are parsed correctly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 7d56f555-53dd-49e1-a058-4f76dcf80967

📥 Commits

Reviewing files that changed from the base of the PR and between d6cf26c and de0b0fc.

📒 Files selected for processing (1)
  • docs/wg/research/chromium/svg/index.md

Comment on lines +59 to +85
```
third_party/blink/renderer/
├── core/svg/ SVG DOM, parsing, IDL bindings
│ ├── animation/ SMIL: SMILTimeContainer, sandwich, SVGSMILElement
│ ├── graphics/ SVGImage, SVGImageForContainer
│ ├── graphics/filters/ filter graph builder
│ └── properties/ SVGAnimatedProperty, tear-offs
├── core/layout/svg/ SVG-specific layout (UpdateSVGLayout)
├── core/paint/ (svg_*) SVG painters (filename prefix svg_)
├── core/animation/ CSS / Web Animations engine (shared with HTML)
├── core/css/ CSS engine (shared)
├── core/dom/ DOM base (shared)
├── modules/accessibility/ AX tree (no separate AXSVG class — folded into AXNodeObject)
└── platform/graphics/ GraphicsContext, Path, Gradient, Pattern (shared)

- `svg/` — DOM element classes (`SVGElement`, `SVGPathElement`, …).
- `layout/svg/` — layout tree (`LayoutSVGRoot`, `LayoutSVGShape`, …).
- `paint/` — painters (`SVGShapePainter`, `SVGObjectPainter`, …).
- `svg/graphics/filters/` — filter graph builder.
- `svg/graphics/` — `SVGImage`, `SVGImageForContainer`.
cc/
├── paint/ PaintRecord, PaintOp, PaintFlags (the IR shared with Blink)
├── layers/ cc::Layer hierarchy
├── tiles/ tiling
├── raster/ raster scheduling
└── trees/ LayerTreeHost / Impl

Platform-graphics types (`Pattern`, `Gradient`, `Path`, `GraphicsContext`) live
under `third_party/blink/renderer/platform/graphics/`.
components/viz/ display compositor (GPU process)

third_party/skia/ vendored Skia (used by cc raster + Viz)
└── modules/skottie/ used by cc::PaintSkottie — NOT for web SVG
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add language identifier to fenced code block.

The code block is missing a language identifier, which is flagged by static analysis. For directory tree structures, use text as the language identifier.

🔧 Proposed fix
-```
+```text
 third_party/blink/renderer/
 ├── core/svg/                       SVG DOM, parsing, IDL bindings
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 59-59: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/index.md` around lines 59 - 85, The fenced code
block that contains the directory tree beginning with
"third_party/blink/renderer/" needs a language identifier; change the opening
fence from ``` to ```text so the block (the lines showing core/svg/,
core/layout/svg/, cc/, components/viz/, third_party/skia/, etc.) is annotated as
text.

Comment on lines +163 to +184
```
Element::AttributeChanged
└── SVGElement::AttributeChanged
└── SVGAnimatedNumber::AttributeChanged // parses '50' into baseVal
└── SVGElement::SvgAttributeChanged({ property=r, … })
└── LayoutSVGShape::SetNeedsShapeUpdate + SetNeedsLayout
└── MarkForLayoutAndParentResourceInvalidation
├── ancestors marked NeedsLayout (bbox propagates up)
└── if element is referenced by url(#id):
→ resource clients notified per their mask

next BeginMainFrame:
ServiceAnimations / ServiceSmil (no-op for plain setAttribute)
Style recalc (no-op; r is geometry-only)
Layout LayoutSVGShape::UpdateSVGLayout
rebuilds SkPath, recomputes object/stroke bbox
propagates SVGLayoutResult{bounds_changed=true}
PrePaint paint property nodes possibly updated
Paint PaintController re-records this LayoutObject's items;
DisplayItemCache reuses items for unchanged siblings
Commit → cc → raster → Viz → present
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add language identifier to fenced code block.

The code block is missing a language identifier, which is flagged by static analysis. For trace/call-stack output, use text as the language identifier.

🔧 Proposed fix
-```
+```text
 Element::AttributeChanged
   └── SVGElement::AttributeChanged
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```
Element::AttributeChanged
└── SVGElement::AttributeChanged
└── SVGAnimatedNumber::AttributeChanged // parses '50' into baseVal
└── SVGElement::SvgAttributeChanged({ property=r, … })
└── LayoutSVGShape::SetNeedsShapeUpdate + SetNeedsLayout
└── MarkForLayoutAndParentResourceInvalidation
├── ancestors marked NeedsLayout (bbox propagates up)
└── if element is referenced by url(#id):
→ resource clients notified per their mask
next BeginMainFrame:
ServiceAnimations / ServiceSmil (no-op for plain setAttribute)
Style recalc (no-op; r is geometry-only)
Layout LayoutSVGShape::UpdateSVGLayout
rebuilds SkPath, recomputes object/stroke bbox
propagates SVGLayoutResult{bounds_changed=true}
PrePaint paint property nodes possibly updated
Paint PaintController re-records this LayoutObject's items;
DisplayItemCache reuses items for unchanged siblings
Commit → cc → raster → Viz → present
```
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 163-163: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/index.md` around lines 163 - 184, The fenced
code block containing the call-stack/trace (starting with
"Element::AttributeChanged" and lines including "SVGElement::AttributeChanged",
"SVGAnimatedNumber::AttributeChanged", "LayoutSVGShape::SetNeedsShapeUpdate",
etc.) needs a language identifier; add "text" to the opening fence (i.e., change
``` to ```text) so the block is correctly marked as plain text for static
analysis and rendering.

Run `pnpm fmt` over the chromium/svg/ subdirectory:

- Tables aligned (column widths normalized).
- Emphasis switched to underscore form (`_x_` instead of `*x*`).
- Whitespace normalized.

Also fix a malformed table in migration-status.md (2-col header vs
3-col rows) by dropping the third column and moving the cross-reference
to surrounding prose.

No content changes.
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/wg/research/chromium/svg/index.md (1)

1-9: ⚠️ Potential issue | 🟡 Minor

Frontmatter is incomplete for docs/wg guidelines.

Please add description, keywords, and format: md to align with docs metadata and Markdown parsing expectations.

📝 Proposed frontmatter patch
 ---
 title: "Chromium SVG Rendering Research"
+description: "Research index for Chromium/Blink SVG rendering internals, including pipeline, resources, animation/SMIL, hit-testing, accessibility, and migration status."
+keywords:
+  - chromium
+  - blink
+  - svg
+  - rendering
+  - research
+format: md
 tags:
   - internal
   - research
   - chromium
   - rendering
   - svg
 ---
As per coding guidelines: For actively maintained docs in `docs/wg/**`, prefer frontmatter with `title`, `description`, and `keywords`; and for most `wg/` Markdown pages that do not use MDX/JSX features, include `format: md`.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/index.md` around lines 1 - 9, The frontmatter
for the Chromium SVG Rendering Research doc is missing required metadata; update
the YAML block to include a description (brief summary string), keywords (array
of relevant terms), and format: md alongside the existing title so it follows
docs/wg conventions — add keys `description: "..."`, `keywords: [ ... ]`, and
`format: md` in the frontmatter near `title` to ensure proper metadata and
Markdown parsing.
♻️ Duplicate comments (7)
docs/wg/research/chromium/svg/index.md (2)

59-85: ⚠️ Potential issue | 🟡 Minor

Add a language identifier to the directory-tree fenced block.

Use text on the opening fence to satisfy markdownlint and keep rendering consistent.

🔧 Proposed fix
-```
+```text
 third_party/blink/renderer/
 ...
-```
+```
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/index.md` around lines 59 - 85, Change the
directory-tree fenced code block in docs/wg/research/chromium/svg/index.md to
use a language identifier by replacing the opening fence ``` with ```text so
markdownlint passes and rendering stays consistent; locate the directory-tree
block (the triple-backtick block that begins before
"third_party/blink/renderer/" and ends after "third_party/skia/") and update
only the opening fence to ```text.

163-184: ⚠️ Potential issue | 🟡 Minor

Add a language identifier to the trace fenced block.

This call-trace block should also be fenced as text.

🔧 Proposed fix
-```
+```text
 Element::AttributeChanged
 ...
-```
+```
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/index.md` around lines 163 - 184, The fenced
call-trace block is missing a language identifier; update the opening fence to
use ```text so the trace (starting with Element::AttributeChanged and the
subsequent call sequence including SVGElement::AttributeChanged,
SVGAnimatedNumber::AttributeChanged, SVGElement::SvgAttributeChanged,
LayoutSVGShape::SetNeedsShapeUpdate, etc.) is fenced as text — change the
existing triple-backtick fence to ```text and leave the rest of the block
unchanged.
docs/wg/research/chromium/svg/animated-properties-idl.md (2)

1-9: ⚠️ Potential issue | 🟡 Minor

Add missing frontmatter fields (description, keywords, format: md).

This page still misses required docs metadata and Markdown format declaration for non-MDX parsing.

📝 Proposed frontmatter patch
 ---
 title: "Chromium SVG Animated Properties (baseVal / animVal)"
+description: "How Blink implements SVG animated property slots (`baseVal`/`animVal`), tear-offs, lazy attribute sync, and CSS bridging."
+keywords:
+  - chromium
+  - blink
+  - svg
+  - baseVal
+  - animVal
+  - tear-off
+format: md
 tags:
   - internal
   - research
   - chromium
   - rendering
   - svg
 ---
As per coding guidelines: For actively maintained docs in `docs/wg/**`, prefer frontmatter with `title`, `description`, and `keywords`; and for most `wg/` and `reference/` Markdown pages without MDX/JSX features, include `format: md`.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/animated-properties-idl.md` around lines 1 - 9,
Add the missing frontmatter fields to the top YAML block: include a descriptive
`description` string summarizing the page, a `keywords` array with relevant tags
(e.g., "chromium", "svg", "animated-properties", "rendering"), and set `format:
md` to ensure plain Markdown parsing; keep the existing `title` and `tags`
intact and place these fields in the same YAML frontmatter block shown in the
current file header so tools consuming docs/wg content will recognize the
metadata.

139-143: ⚠️ Potential issue | 🟡 Minor

Specify text for the directory-tree fenced block.

The fence at this section is still missing a language identifier.

🔧 Proposed fix
-```
+```text
 core/svg/properties/
   svg_property_tear_off.h          SVGPropertyTearOff<T>
   svg_list_property_tear_off_helper.h
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @docs/wg/research/chromium/svg/animated-properties-idl.md around lines 139 -
143, The fenced directory-tree block containing "core/svg/properties/
svg_property_tear_off.h SVGPropertyTearOff
svg_list_property_tear_off_helper.h" is missing a language identifier; update
that fenced code block to use the "text" language tag (i.e., replace the opening
"" with "text") so the snippet is correctly marked as plain text in the
markdown.


</details>

</blockquote></details>
<details>
<summary>docs/wg/research/chromium/svg/animation-and-smil.md (1)</summary><blockquote>

`1-9`: _⚠️ Potential issue_ | _🟡 Minor_

**Add required frontmatter fields for docs/wg pages.**

This file still needs `description`, `keywords`, and `format: md`.

 
<details>
<summary>📝 Proposed frontmatter patch</summary>

```diff
 ---
 title: "Chromium SVG Animation and SMIL"
+description: "How Blink runs SVG animation via SMIL and CSS/Web Animations, including timing, sandwich composition, and per-frame sampling behavior."
+keywords:
+  - chromium
+  - blink
+  - svg
+  - smil
+  - web animations
+  - animation
+format: md
 tags:
   - internal
   - research
   - chromium
   - rendering
   - svg
 ---
```
</details>
As per coding guidelines: For actively maintained docs in `docs/wg/**`, prefer frontmatter with `title`, `description`, and `keywords`; and for most `wg/`/`reference/` Markdown pages without MDX/JSX features, include `format: md`.

<details>
<summary>🤖 Prompt for AI Agents</summary>

```
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/animation-and-smil.md` around lines 1 - 9, The
frontmatter for the "Chromium SVG Animation and SMIL" document is missing
required fields; update the YAML frontmatter at the top of the file (where
title: "Chromium SVG Animation and SMIL" and tags: [...] are defined) to include
description: with a short summary of the page, keywords: as a list/array of
relevant terms, and format: md so the page is treated as plain Markdown; ensure
the added fields follow existing YAML indentation and quoting conventions.
```

</details>

</blockquote></details>
<details>
<summary>docs/wg/research/chromium/svg/hit-testing.md (1)</summary><blockquote>

`1-9`: _⚠️ Potential issue_ | _🟡 Minor_

**Frontmatter is missing required docs metadata.**

Please add `description`, `keywords`, and `format: md` at the top-level YAML block.

 
<details>
<summary>📝 Proposed frontmatter patch</summary>

```diff
 ---
 title: "Chromium SVG Hit Testing"
+description: "Blink SVG hit-testing internals: path-based geometry checks, pointer-events mapping, stroke widening, clip-path handling, and <use> retargeting."
+keywords:
+  - chromium
+  - blink
+  - svg
+  - hit-testing
+  - pointer-events
+format: md
 tags:
   - internal
   - research
   - chromium
   - rendering
   - svg
 ---
```
</details>
As per coding guidelines: For actively maintained docs in `docs/wg/**`, prefer frontmatter with `title`, `description`, and `keywords`; and for most `wg/` pages that do not use MDX/JSX features, include `format: md`.

<details>
<summary>🤖 Prompt for AI Agents</summary>

```
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/hit-testing.md` around lines 1 - 9, The
frontmatter in the YAML block for the document is missing required metadata;
update the top-level YAML (the existing block containing title: "Chromium SVG
Hit Testing") to include description: <short summary of the page>, keywords:
[comma-separated keywords], and format: md so the block contains title,
description, keywords, tags (can be kept), and format: md; ensure these keys are
added at the same indentation level as title to satisfy docs/wg guidelines.
```

</details>

</blockquote></details>
<details>
<summary>docs/wg/research/chromium/svg/migration-status.md (1)</summary><blockquote>

`1-9`: _⚠️ Potential issue_ | _🟡 Minor_

**Add required frontmatter metadata (`description`, `keywords`, `format: md`).**

This page is missing the required metadata fields used in `docs/wg/**`, and `format: md` is especially important here due to angle-bracket-heavy SVG content.

 
<details>
<summary>📝 Proposed frontmatter patch</summary>

```diff
 ---
 title: "Chromium SVG Migration Status"
+description: "Snapshot of Blink SVG migration and stability status across LayoutNG, CompositeAfterPaint, SMIL, and related subsystems (mid-2026)."
+keywords:
+  - chromium
+  - svg
+  - blink
+  - migration
+  - layoutng
+  - compositeafterpaint
+format: md
 tags:
   - internal
   - research
   - chromium
   - rendering
   - svg
 ---
```
</details>
As per coding guidelines: For actively maintained docs in `docs/wg/**`, prefer frontmatter with `title`, `description`, and `keywords`; and for most `wg/` Markdown pages without MDX/JSX features, include `format: md` in frontmatter.

<details>
<summary>🤖 Prompt for AI Agents</summary>

```
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/migration-status.md` around lines 1 - 9, This
document's frontmatter only has title and tags; add the required frontmatter
fields by updating the YAML to include description (a one-sentence summary of
the page), keywords (an array or comma-separated list related to
chromium/svg/migration), and format: md (to ensure Markdown parsing for
angle-bracket SVG content) while keeping the existing title and tags intact.
```

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against the current code and only fix it if needed.

Inline comments:
In @docs/wg/research/chromium/svg/animation-and-smil.md:

  • Line 31: Several plain fenced code blocks in the document are missing a
    language label which triggers MD040; update each unlabeled triple-backtick fence
    that contains the examples (e.g., the blocks showing "SMILTimeContainer ...",
    " ...", the "Page::Animate(monotonic_frame_begin_time)" snippet, and the
    <animate .../> examples including the ones with id="a"/id="b" and "rect.click")
    to use a text language label by changing totext so all six fences are
    labeled consistently.

Outside diff comments:
In @docs/wg/research/chromium/svg/index.md:

  • Around line 1-9: The frontmatter for the Chromium SVG Rendering Research doc
    is missing required metadata; update the YAML block to include a description
    (brief summary string), keywords (array of relevant terms), and format: md
    alongside the existing title so it follows docs/wg conventions — add keys
    description: "...", keywords: [ ... ], and format: md in the frontmatter
    near title to ensure proper metadata and Markdown parsing.

Duplicate comments:
In @docs/wg/research/chromium/svg/animated-properties-idl.md:

  • Around line 1-9: Add the missing frontmatter fields to the top YAML block:
    include a descriptive description string summarizing the page, a keywords
    array with relevant tags (e.g., "chromium", "svg", "animated-properties",
    "rendering"), and set format: md to ensure plain Markdown parsing; keep the
    existing title and tags intact and place these fields in the same YAML
    frontmatter block shown in the current file header so tools consuming docs/wg
    content will recognize the metadata.
  • Around line 139-143: The fenced directory-tree block containing
    "core/svg/properties/ svg_property_tear_off.h SVGPropertyTearOff
    svg_list_property_tear_off_helper.h" is missing a language identifier; update
    that fenced code block to use the "text" language tag (i.e., replace the opening
    "" with "text") so the snippet is correctly marked as plain text in the
    markdown.

In @docs/wg/research/chromium/svg/animation-and-smil.md:

  • Around line 1-9: The frontmatter for the "Chromium SVG Animation and SMIL"
    document is missing required fields; update the YAML frontmatter at the top of
    the file (where title: "Chromium SVG Animation and SMIL" and tags: [...] are
    defined) to include description: with a short summary of the page, keywords: as
    a list/array of relevant terms, and format: md so the page is treated as plain
    Markdown; ensure the added fields follow existing YAML indentation and quoting
    conventions.

In @docs/wg/research/chromium/svg/hit-testing.md:

  • Around line 1-9: The frontmatter in the YAML block for the document is missing
    required metadata; update the top-level YAML (the existing block containing
    title: "Chromium SVG Hit Testing") to include description: , keywords: [comma-separated keywords], and format: md so the block
    contains title, description, keywords, tags (can be kept), and format: md;
    ensure these keys are added at the same indentation level as title to satisfy
    docs/wg guidelines.

In @docs/wg/research/chromium/svg/index.md:

  • Around line 59-85: Change the directory-tree fenced code block in
    docs/wg/research/chromium/svg/index.md to use a language identifier by replacing
    the opening fence withtext so markdownlint passes and rendering stays
    consistent; locate the directory-tree block (the triple-backtick block that
    begins before "third_party/blink/renderer/" and ends after "third_party/skia/")
    and update only the opening fence to ```text.
  • Around line 163-184: The fenced call-trace block is missing a language
    identifier; update the opening fence to use text so the trace (starting with Element::AttributeChanged and the subsequent call sequence including SVGElement::AttributeChanged, SVGAnimatedNumber::AttributeChanged, SVGElement::SvgAttributeChanged, LayoutSVGShape::SetNeedsShapeUpdate, etc.) is fenced as text — change the existing triple-backtick fence to text and leave
    the rest of the block unchanged.

In @docs/wg/research/chromium/svg/migration-status.md:

  • Around line 1-9: This document's frontmatter only has title and tags; add the
    required frontmatter fields by updating the YAML to include description (a
    one-sentence summary of the page), keywords (an array or comma-separated list
    related to chromium/svg/migration), and format: md (to ensure Markdown parsing
    for angle-bracket SVG content) while keeping the existing title and tags intact.

</details>

<details>
<summary>🪄 Autofix (Beta)</summary>

Fix all unresolved CodeRabbit comments on this PR:

- [ ] <!-- {"checkboxId": "4b0d0e0a-96d7-4f10-b296-3a18ea78f0b9"} --> Push a commit to this branch (recommended)
- [ ] <!-- {"checkboxId": "ff5b1114-7d8c-49e6-8ac1-43f82af23a33"} --> Create a new PR with the fixes

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: Organization UI

**Review profile**: CHILL

**Plan**: Pro

**Run ID**: `4fe38feb-d12f-42d9-9aa0-06e0b7dbbebd`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between de0b0fc52e3fdb607adfd3038a284b574a93f342 and c1b210410d5594e34db96b9b1e95b77617d6d731.

</details>

<details>
<summary>📒 Files selected for processing (6)</summary>

* `docs/wg/research/chromium/svg/accessibility.md`
* `docs/wg/research/chromium/svg/animated-properties-idl.md`
* `docs/wg/research/chromium/svg/animation-and-smil.md`
* `docs/wg/research/chromium/svg/hit-testing.md`
* `docs/wg/research/chromium/svg/index.md`
* `docs/wg/research/chromium/svg/migration-status.md`

</details>

<details>
<summary>✅ Files skipped from review due to trivial changes (1)</summary>

* docs/wg/research/chromium/svg/accessibility.md

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->


## SMIL data model

```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Label all plain fenced blocks with a language (text).

These six fences are currently unlabeled and will keep triggering MD040.

🔧 Proposed fix pattern
-```
+```text
 SMILTimeContainer                    one per outer <svg>
 ...

- +text

...


-```
+```text
Page::Animate(monotonic_frame_begin_time)
...

- +text
<animate begin="2s; 5s" end="4s; 6s" .../>


-```
+```text
<animate id="a" begin="0s" dur="1s"/>
<animate id="b" begin="a.end+0.5s" dur="1s"/>

- +text
<animate begin="rect.click" .../>

Also applies to: 90-90, 120-120, 151-151, 159-159, 169-169

🧰 Tools
🪛 markdownlint-cli2 (0.22.1)

[warning] 31-31: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/wg/research/chromium/svg/animation-and-smil.md` at line 31, Several
plain fenced code blocks in the document are missing a language label which
triggers MD040; update each unlabeled triple-backtick fence that contains the
examples (e.g., the blocks showing "SMILTimeContainer ...", "<svg> ...", the
"Page::Animate(monotonic_frame_begin_time)" snippet, and the <animate .../>
examples including the ones with id="a"/id="b" and "rect.click") to use a text
language label by changing ``` to ```text so all six fences are labeled
consistently.

@softmarshmallow softmarshmallow merged commit f4e0f66 into main Apr 26, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant