Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ba227e713a9900f87222d60b19da70af868afee5
      
https://github.com/WebKit/WebKit/commit/ba227e713a9900f87222d60b19da70af868afee5
  Author: Karl Dubost <[email protected]>
  Date:   2026-04-08 (Wed, 08 Apr 2026)

  Changed paths:
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/syncbase-escaped-dots-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/syncbase-escaped-dots.html
    M Source/WebCore/svg/animation/SVGSMILElement.cpp

  Log Message:
  -----------
  Cannot escape Id-value in SVG animation timing attributes
https://bugs.webkit.org/show_bug.cgi?id=42871
rdar://94260935

Reviewed by Antoine Quint.

The SMIL3 specification (ยง Parsing timing specifiers) requires that
the reverse solidus character '\' be used to escape full stop '.'
characters within Id-values in timing attributes, so that dots in
element IDs are not confused with the Id/event separator.

For example, begin="my\.anim.end" should reference an element with
id="my.anim" and its "end" event. WebKit's parseCondition() used a
simple find('.') which matched the first dot regardless of escaping.

The fix finds the first unescaped dot (not preceded by '\') when
splitting the condition string, then strips backslash escapes from
the resolved element ID before lookup.

The tests use only .begin events since parseCondition() handles
begin and end attributes through the same code path.

Spec: https://www.w3.org/TR/SMIL3/smil-timing.html#q22

Test: imported/w3c/web-platform-tests/svg/animations/syncbase-escaped-dots.html

* 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/syncbase-escaped-dots-expected.txt:
 Added.
* 
LayoutTests/imported/w3c/web-platform-tests/svg/animations/syncbase-escaped-dots.html:
 Added.
* Source/WebCore/svg/animation/SVGSMILElement.cpp:
(WebCore::SVGSMILElement::parseCondition):

Canonical link: https://commits.webkit.org/310805@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to