diff options
Diffstat (limited to 'devtools/shared/specs/animation.js')
-rw-r--r-- | devtools/shared/specs/animation.js | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/devtools/shared/specs/animation.js b/devtools/shared/specs/animation.js new file mode 100644 index 0000000000..95acd606b5 --- /dev/null +++ b/devtools/shared/specs/animation.js @@ -0,0 +1,110 @@ +/* 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/. */ +"use strict"; + +const { + Arg, + RetVal, + generateActorSpec, + types, +} = require("resource://devtools/shared/protocol.js"); + +/** + * Sent with the 'mutations' event as part of an array of changes, used to + * inform fronts of the type of change that occured. + */ +types.addDictType("animationMutationChange", { + // The type of change ("added" or "removed"). + type: "string", + // The changed AnimationPlayerActor. + player: "animationplayer", +}); + +const animationPlayerSpec = generateActorSpec({ + typeName: "animationplayer", + + events: { + changed: { + type: "changed", + state: Arg(0, "json"), + }, + }, + + methods: { + release: { release: true }, + getCurrentState: { + request: {}, + response: { + data: RetVal("json"), + }, + }, + getAnimationTypes: { + request: { + propertyNames: Arg(0, "array:string"), + }, + response: { + animationTypes: RetVal("json"), + }, + }, + }, +}); + +exports.animationPlayerSpec = animationPlayerSpec; + +const animationsSpec = generateActorSpec({ + typeName: "animations", + + events: { + mutations: { + type: "mutations", + changes: Arg(0, "array:animationMutationChange"), + }, + }, + + methods: { + setWalkerActor: { + request: { + walker: Arg(0, "domwalker"), + }, + response: {}, + }, + getAnimationPlayersForNode: { + request: { + actorID: Arg(0, "domnode"), + }, + response: { + players: RetVal("array:animationplayer"), + }, + }, + pauseSome: { + request: { + players: Arg(0, "array:animationplayer"), + }, + response: {}, + }, + playSome: { + request: { + players: Arg(0, "array:animationplayer"), + }, + response: {}, + }, + setCurrentTimes: { + request: { + players: Arg(0, "array:animationplayer"), + time: Arg(1, "number"), + shouldPause: Arg(2, "boolean"), + }, + response: {}, + }, + setPlaybackRates: { + request: { + players: Arg(0, "array:animationplayer"), + rate: Arg(1, "number"), + }, + response: {}, + }, + }, +}); + +exports.animationsSpec = animationsSpec; |