Bug 27627

Summary: DRT animation/transition pause API does not pause accelerated animations
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Tools / TestsAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: cmarrin
Priority: P2 Keywords: InRadar
Version: 528+ (Nightly build)   
Hardware: All   
OS: OS X 10.5   
Attachments:
Description Flags
Patch, changelogs
mitz: review+
Unbitrotted patch, some tests need tweaking still. none

Description Simon Fraser (smfr) 2009-07-23 15:16:15 PDT
The 'pauseAnimationAtTimeOnElementWithId' and 'pauseTransitionAtTimeOnElementWithId' methods available to JS in DRT don't do the right thing for animations that are accelerated, making it hard to write tests that give pixel-accurate results for these kinds of animations.
Comment 1 Simon Fraser (smfr) 2009-07-23 15:16:46 PDT
<rdar://problem/6442932>
Comment 2 Simon Fraser (smfr) 2009-07-23 15:22:20 PDT
Created attachment 33385 [details]
Patch, changelogs
Comment 3 mitz 2009-07-24 11:33:45 PDT
Comment on attachment 33385 [details]
Patch, changelogs

Minor style issues:

> -void AnimationBase::pauseAtTime(double t)
> +void AnimationBase::freezeAtTime(double t)

While you’re at it, please rename 't' to 'time'.

> +    ASSERT(m_startTime);        // if m_startTime is zero, we haven't started yet, so we'll get a bad pause time.

Since it ends with a period, it must begin with a capital “If” instead of “if”.

> +    void freezeAtTime(double t);

No need to name the parameter here.

> +    virtual void suspendAnimations(double time = 0);    // zero value for time means "use currentTime()".

“Zero” instead of “zero”.
Comment 4 Simon Fraser (smfr) 2009-07-31 18:24:39 PDT
Created attachment 33916 [details]
Unbitrotted patch, some tests need tweaking still.
Comment 5 Simon Fraser (smfr) 2009-08-03 12:40:27 PDT
http://trac.webkit.org/changeset/46727