[Webkit-unassigned] [Bug 281404] New: SVG Animation Event names might need to be special-cased

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Oct 13 17:38:01 PDT 2024


https://bugs.webkit.org/show_bug.cgi?id=281404

            Bug ID: 281404
           Summary: SVG Animation Event names might need to be
                    special-cased
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: DOM
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: ahmad.saleem792 at gmail.com
                CC: rniwa at webkit.org

Hi Team,

While looking into why we don't have following EventHandlers in the `SVGAnimationElement.idl`:

  attribute EventHandler onbegin;
  attribute EventHandler onend;
  attribute EventHandler onrepeat;

Web Specification: https://svgwg.org/specs/animations/#InterfaceSVGAnimationElement

__

When we have to add them in bug 275669 (PR - https://github.com/WebKit/WebKit/pull/29984), it is something where we need to add.

`begin` in (EventNames), where this can be linked with `onbegin` instead of `EventNames` automatically linking with `beginEvent` (which we already have).

Without adding `begin`, we fail `idlharness.html` tests in `svg` directory.

___

We have following already.

`beginEvent`
`endEvent`

in EventNames.json but if I add just `idl` bits, it does not compile and give error (at least for begin) but if I add `begin` then it compiles.

Although, it leads to another WPT test failures.

____

So now why we need special case:

1) We already have `end` and `endEvent` in `EventNames.json`
2) Now if I add `attribute EventHandler.json
3) It compiles and progress one test in WPT but at the same time leads to this failure.

FAILURE: https://wpt.fyi/results/svg/animations/custom-events.html?label=experimental&label=master&aligned

___

Now look into failure: 

First test -> custom events with the name 'end' should only call the event listener for the event 'end' and no attribute handlers or IDL listeners
Second -> custom events with the name 'endEvent' should call 'onend' attribute handlers and IDL property listeners, and 'endEvent' listeners    

By adding `IDL`, we start failing first one.

___

We need to make sure, `endEvent` map to `onend` and similarly for other `beginEvent` map to `onbegin` etc.

____

This was done via something like this in blink:

+    DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER(begin, beginEvent);
+    DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER(end, endEvent);
+    DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER(repeat, repeatEvent);

Commit - https://codereview.chromium.org/201673003

___

We have removed `DEFINE_MAPPED_ATTRIBUTE_EVENT_LISTENER` macro as well.

____

If we add `begin` in EventNames.json, it leads to following `Safe C++` [Smart Pointer] violation: https://ews-build.webkit.org/#/builders/120/builds/1177

'Found 1 new failure in JSSVGAnimationElement.cpp'

=> UncountedCallArgsChecker
JSSVGAnimationElement.cpp

___

Just raising so we can fix it.

Thanks!

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20241014/282dd45f/attachment.htm>


More information about the webkit-unassigned mailing list