Bug 250481 - Improve comparison of intervals in SVGSMILElement::resolveFirstInterval
Summary: Improve comparison of intervals in SVGSMILElement::resolveFirstInterval
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: SVG (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2023-01-11 15:15 PST by Ahmad Saleem
Modified: 2023-01-18 15:16 PST (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ahmad Saleem 2023-01-11 15:15:22 PST
Hi Team,

While going through Blink's commit, came across another potential fix:

Commit - https://src.chromium.org/viewvc/blink?revision=175122&view=revision

WebKit Source - https://searchfox.org/wubkat/source/Source/WebCore/svg/animation/SVGSMILElement.cpp#863 etc.

Just wanted to raise to see if we can fix this.

Thanks!
Comment 1 Karl Dubost 2023-01-11 20:59:10 PST
The prose of the Blink commit.

============
Improve comparison of intervals in SVGSMILElement::resolveFirstInterval

For open-ended intervals such as [3) - i.e. begin=3s and end/duration/etc
unspecified - every call to resolveFirstInterval() would think that a new
interval had been created, and notify/require a reschedule of the
animations.
Add a new type SMILInterval and a suitable operator for that, and then
use it to compare the raw values (i.e. if both endpoints are exacly the same.)

BUG=377329
===========
https://bugs.chromium.org/p/chromium/issues/detail?id=377329


There is a testcase in there.
Comment 2 Ahmad Saleem 2023-01-12 04:21:26 PST
(In reply to Karl Dubost from comment #1)
> The prose of the Blink commit.
> 
> ============
> Improve comparison of intervals in SVGSMILElement::resolveFirstInterval
> 
> For open-ended intervals such as [3) - i.e. begin=3s and end/duration/etc
> unspecified - every call to resolveFirstInterval() would think that a new
> interval had been created, and notify/require a reschedule of the
> animations.
> Add a new type SMILInterval and a suitable operator for that, and then
> use it to compare the raw values (i.e. if both endpoints are exacly the
> same.)
> 
> BUG=377329
> ===========
> https://bugs.chromium.org/p/chromium/issues/detail?id=377329
> 
> 
> There is a testcase in there.

The test need:

Add a printf in SVGImageChromeClient::invalidateContentsAndRootView
Comment 3 Radar WebKit Bug Importer 2023-01-18 15:16:14 PST
<rdar://problem/104399900>