Keyframe animation doesn't 't show up in the Animations timeline
[WebKit-https.git] / Source / JavaScriptCore / inspector / protocol / Animation.json
1 {
2     "domain": "Animation",
3     "description": "Domain for tracking/modifying Web Animations, as well as CSS (declarative) animations and transitions.",
4     "debuggableTypes": ["page", "web-page"],
5     "targetTypes": ["page"],
6     "types": [
7         {
8             "id": "AnimationId",
9             "type": "string",
10             "description": "Unique Web Animation identifier."
11         },
12         {
13             "id": "AnimationState",
14             "type": "string",
15             "enum": ["ready", "delayed", "active", "canceled", "done"]
16         },
17         {
18             "id": "PlaybackDirection",
19             "type": "string",
20             "enum": ["normal", "reverse", "alternate", "alternate-reverse"]
21         },
22         {
23             "id": "FillMode",
24             "type": "string",
25             "enum": ["none", "forwards", "backwards", "both", "auto"]
26         },
27         {
28             "id": "Animation",
29             "type": "object",
30             "properties": [
31                 { "name": "animationId", "$ref": "AnimationId" },
32                 { "name": "name", "type": "string", "optional": true, "description": "Equal to `Animation.prototype.get id`." },
33                 { "name": "cssAnimationName", "type": "string", "optional": true, "description": "Equal to the corresponding `animation-name` CSS property. Should not be provided if `transitionProperty` is also provided." },
34                 { "name": "cssTransitionProperty", "type": "string", "optional": true, "description": "Equal to the corresponding `transition-property` CSS property. Should not be provided if `animationName` is also provided." },
35                 { "name": "effect", "$ref": "Effect", "optional": true },
36                 { "name": "backtrace", "type": "array", "items": { "$ref": "Console.CallFrame" }, "optional": true, "description": "Backtrace that was captured when this `WebAnimation` was created." }
37             ]
38         },
39         {
40             "id": "Effect",
41             "type": "object",
42             "properties": [
43                 { "name": "startDelay", "type": "number", "optional": true },
44                 { "name": "endDelay", "type": "number", "optional": true },
45                 { "name": "iterationCount", "type": "number", "optional": true, "description": "Number of iterations in the animation. <code>Infinity</code> is represented as <code>-1</code>." },
46                 { "name": "iterationStart", "type": "number", "optional": true, "description": "Index of which iteration to start at." },
47                 { "name": "iterationDuration", "type": "number", "optional": true, "description": "Total time of each iteration, measured in milliseconds." },
48                 { "name": "timingFunction", "type": "string", "optional": true, "description": "CSS timing function of the overall animation." },
49                 { "name": "playbackDirection", "$ref": "PlaybackDirection", "optional": true },
50                 { "name": "fillMode", "$ref": "FillMode", "optional": true },
51                 { "name": "keyframes", "type": "array", "items": { "$ref": "Keyframe" }, "optional": true }
52             ]
53         },
54         {
55             "id": "Keyframe",
56             "type": "object",
57             "properties": [
58                 { "name": "offset", "type": "number", "description": "Decimal percentage [0,1] representing where this keyframe is in the entire duration of the animation." },
59                 { "name": "easing", "type": "string", "optional": true, "description": "CSS timing function for how the `style` is applied." },
60                 { "name": "style", "type": "string", "optional": true, "description": "CSS style declaration of the CSS properties that will be animated." }
61             ]
62         },
63         {
64             "id": "TrackingUpdate",
65             "type": "object",
66             "properties": [
67                 { "name": "trackingAnimationId", "$ref": "AnimationId" },
68                 { "name": "animationState", "$ref": "AnimationState" },
69                 { "name": "nodeId", "$ref": "DOM.NodeId", "optional": true },
70                 { "name": "animationName", "type": "string", "optional": true, "description": "Equal to the corresponding `animation-name` CSS property. Should not be provided if `transitionProperty` is also provided." },
71                 { "name": "transitionProperty", "type": "string", "optional": true, "description": "Equal to the corresponding `transition-property` CSS property. Should not be provided if `animationName` is also provided." }
72             ]
73         }
74     ],
75     "commands": [
76         {
77             "name": "enable",
78             "description": "Enables Canvas domain events."
79         },
80         {
81             "name": "disable",
82             "description": "Disables Canvas domain events."
83         },
84         {
85             "name": "requestEffectTarget",
86             "description": "Gets the `DOM.NodeId` for the target of the effect of the animation with the given `AnimationId`.",
87             "parameters": [
88                 { "name": "animationId", "$ref": "AnimationId" }
89             ],
90             "returns": [
91                 { "name": "nodeId", "$ref": "DOM.NodeId" }
92             ]
93         },
94         {
95             "name": "resolveAnimation",
96             "description": "Resolves JavaScript `WebAnimation` object for given `AnimationId`.",
97             "parameters": [
98                 { "name": "animationId", "$ref": "AnimationId" },
99                 { "name": "objectGroup", "type": "string", "optional": true, "description": "Symbolic group name that can be used to release multiple objects." }
100             ],
101             "returns": [
102                 { "name": "object", "$ref": "Runtime.RemoteObject" }
103             ]
104         },
105         {
106             "name": "startTracking",
107             "description": "Start tracking animations. This will produce a `trackingStart` event."
108         },
109         {
110             "name": "stopTracking",
111             "description": "Stop tracking animations. This will produce a `trackingComplete` event."
112         }
113     ],
114     "events": [
115         {
116             "name": "animationCreated",
117             "description": "Dispatched whenever a `WebAnimation` is created.",
118             "parameters": [
119                 { "name": "animation", "$ref": "Animation" }
120             ]
121         },
122         {
123             "name": "nameChanged",
124             "description": "Dispatched whenever `Animation.prototype.set id` is called.",
125             "parameters": [
126                 { "name": "animationId", "$ref": "AnimationId" },
127                 { "name": "name", "type": "string", "optional": true, "description": "Equal to `Animation.prototype.get id`." }
128             ]
129         },
130         {
131             "name": "effectChanged",
132             "description": "Dispatched whenever the effect of any animation is changed in any way.",
133             "parameters": [
134                 { "name": "animationId", "$ref": "AnimationId" },
135                 { "name": "effect", "$ref": "Effect", "optional": true, "description": "This is omitted when the effect is removed without a replacement." }
136             ]
137         },
138         {
139             "name": "targetChanged",
140             "description": "Dispatched whenever the target of any effect of any animation is changed in any way.",
141             "parameters": [
142                 { "name": "animationId", "$ref": "AnimationId" }
143             ]
144         },
145         {
146             "name": "animationDestroyed",
147             "description": "Dispatched whenever a `WebAnimation` is destroyed.",
148             "parameters": [
149                 { "name": "animationId", "$ref": "AnimationId" }
150             ]
151         },
152         {
153             "name": "trackingStart",
154             "description": "Dispatched after `startTracking` command.",
155             "parameters": [
156                 { "name": "timestamp", "type": "number" }
157             ]
158         },
159         {
160             "name": "trackingUpdate",
161             "description": "Fired for each phase of Web Animation.",
162             "parameters": [
163                 { "name": "timestamp", "type": "number" },
164                 { "name": "event", "$ref": "TrackingUpdate" }
165             ]
166         },
167         {
168             "name": "trackingComplete",
169             "description": "Dispatched after `stopTracking` command.",
170             "parameters": [
171                 { "name": "timestamp", "type": "number" }
172             ]
173         }
174     ]
175 }