Bug 250481

Summary: Improve comparison of intervals in SVGSMILElement::resolveFirstInterval
Product: WebKit Reporter: Ahmad Saleem <ahmad.saleem792>
Component: SVGAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: karlcow, sabouhallawa, webkit-bug-importer, zimmermann
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

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>