gecko/dom/webidl/AnimationPlayer.webidl
Brian Birtles 454197c42c Bug 1104427 part 1 - Rename GetStartTime to GetStartTimeAsDouble; r=bholley
In forthcoming patches we will encapsulate AnimationPlayer::mStartTime so we can
ensure that related state is updated appropriately. We would like to expose
mStartTime via GetStartTime() but currently a method of that name returns the
start time as a double.

This patch applies the pattern used for currentTime to startTime; specifically,
GetCurrentTime() returns the TimeDuration (since that's what C++ callers should
use) while GetCurrentTimeAsDouble() returns a double.

At the same time, this patch also removes the [Pure] extended attribute from
startTime in the WebIDL definition since subsequent patches either in this bug
or in bug 927349 will mean that startTime can be updated out-of-band.
Specifically, we will implement deferred playback of animation such that the
startTime remains null until we've finished rendering the first frame of the
animation.
2014-12-04 08:28:38 -08:00

50 lines
1.5 KiB
Plaintext

/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/.
*
* The origin of this IDL file is
* http://dev.w3.org/fxtf/web-animations/#idl-def-AnimationPlayer
*
* Copyright © 2014 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
* liability, trademark and document use rules apply.
*/
enum AnimationPlayState { "idle", "pending", "running", "paused", "finished" };
[Pref="dom.animations-api.core.enabled"]
interface AnimationPlayer {
// Bug 1049975
// attribute AnimationNode? source;
[Pure]
readonly attribute Animation? source;
readonly attribute AnimationTimeline timeline;
[BinaryName="startTimeAsDouble"]
readonly attribute double? startTime;
[BinaryName="currentTimeAsDouble"]
readonly attribute double? currentTime;
/* Not yet implemented
attribute double playbackRate; */
[BinaryName="playStateFromJS"]
readonly attribute AnimationPlayState playState;
/*
readonly attribute Promise ready;
readonly attribute Promise finished;
void cancel ();
void finish ();
*/
[BinaryName="playFromJS"]
void play ();
[BinaryName="pauseFromJS"]
void pause ();
/*
void reverse ();
*/
};
// Non-standard extensions
partial interface AnimationPlayer {
[ChromeOnly] readonly attribute boolean isRunningOnCompositor;
};