Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2041)

Unified Diff: Source/devtools/front_end/sdk/AnimationModel.js

Issue 620783002: Devtools Animations: Basic animation inspection & control in Styles pane (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Update JSDOC Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/devtools/front_end/sdk/AnimationModel.js
diff --git a/Source/devtools/front_end/sdk/AnimationModel.js b/Source/devtools/front_end/sdk/AnimationModel.js
new file mode 100644
index 0000000000000000000000000000000000000000..a0c3137a117a867aa8a3d9e2e4ab05d833af43ef
--- /dev/null
+++ b/Source/devtools/front_end/sdk/AnimationModel.js
@@ -0,0 +1,261 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+
+/**
+ * @constructor
+ * @extends {WebInspector.SDKModel}
+ * @param {!WebInspector.Target} target
+ */
+WebInspector.AnimationModel = function(target) {
+ WebInspector.SDKModel.call(this, WebInspector.AnimationModel, target);
+
+ this._agent = target.animationAgent();
+}
+
+WebInspector.AnimationModel.prototype = {
+ /**
+ * @param {!DOMAgent.NodeId} nodeId
+ * @param {function(?Array.<!WebInspector.AnimationModel.AnimationPlayer>)} callback
+ */
+ animationPlayers: function(nodeId, callback)
+ {
+ var target = this.target();
+ /**
+ * @param {?Protocol.Error} error
+ * @param {!Array.<!AnimationAgent.AnimationPlayer>} payloads
+ */
+ function mycallback(error, payloads)
+ {
+ if (error) {
+ callback(null);
+ return;
+ }
+ callback(payloads.map(function(payload) {
+ return new WebInspector.AnimationModel.AnimationPlayer(target, payload);
+ }));
+ }
vsevik 2014/10/16 08:13:52 Please add an empty line before and after function
samli 2014/10/16 22:59:30 Done.
+ this._agent.getAnimationPlayersForNode(nodeId, mycallback);
+ },
+
+ __proto__: WebInspector.SDKModel.prototype
+}
+
+/**
+ * @constructor
+ * @extends {WebInspector.SDKObject}
+ * @param {!WebInspector.Target} target
+ * @param {!AnimationAgent.AnimationPlayer} payload
+ */
+WebInspector.AnimationModel.AnimationPlayer = function(target, payload)
+{
+ WebInspector.SDKObject.call(this, target);
+ this._payload = payload;
+ this._source = new WebInspector.AnimationModel.AnimationNode(this.target(), this._payload.source);
+}
+
+WebInspector.AnimationModel.AnimationPlayer.prototype = {
+ /**
+ * @return {!AnimationAgent.AnimationPlayer}
+ */
+ payload: function()
+ {
+ return this._payload;
+ },
+
+ /**
+ * @return {string}
+ */
+ id: function()
+ {
+ return this._payload.id;
+ },
+
+ /**
+ * @return {boolean}
+ */
+ paused: function ()
+ {
+ return this._payload.pausedState;
+ },
+
+ /**
+ * @return {string}
+ */
+ playState: function()
+ {
+ return this._payload.playState;
+ },
+
+ /**
+ * @return {number}
+ */
+ playbackRate: function()
+ {
+ return this._payload.playbackRate;
+ },
+
+ /**
+ * @return {number}
+ */
+ startTime: function()
+ {
+ return this._payload.startTime;
+ },
+
+ /**
+ * @return {number}
+ */
+ currentTime: function()
+ {
+ return this._payload.currentTime;
+ },
+
+ /**
+ * @return {!WebInspector.AnimationModel.AnimationNode}
+ */
+ source: function()
+ {
+ return this._source;
+ },
+
+ /**
+ * @param {function(?WebInspector.AnimationModel.AnimationPlayer)} callback
+ */
+ pause: function(callback)
+ {
+ var wrappedCallback = InspectorBackend.wrapClientCallback(callback, "AnimationAgent.pauseAnimationPlayer(): ", WebInspector.AnimationModel.AnimationPlayer.bind(null, this._target));
+ this.target().animationModel._agent.pauseAnimationPlayer(this.id(), wrappedCallback);
+ },
+
+ /**
+ * @param {function(?WebInspector.AnimationModel.AnimationPlayer)} callback
+ */
+ play: function(callback)
+ {
+ var wrappedCallback = InspectorBackend.wrapClientCallback(callback, "AnimationAgent.playAnimationPlayer(): ", WebInspector.AnimationModel.AnimationPlayer.bind(null, this._target));
+ this.target().animationModel._agent.playAnimationPlayer(this.id(), wrappedCallback);
+ },
+
+ /**
+ * @param {number} currentTime
+ * @param {function(?WebInspector.AnimationModel.AnimationPlayer)} callback
+ */
+ setCurrentTime: function(currentTime, callback)
+ {
+ var wrappedCallback = InspectorBackend.wrapClientCallback(callback, "AnimationAgent.setAnimationPlayerCurrentTime(): ", WebInspector.AnimationModel.AnimationPlayer.bind(null, this._target));
+ this.target().animationModel._agent.setAnimationPlayerCurrentTime(this.id(), currentTime, wrappedCallback);
+ },
+
+ /**
+ * @param {function(number, boolean)} callback
+ */
+ getCurrentState: function(callback)
+ {
+ /**
+ * @param {?Protocol.Error} error
+ * @param {number} currentTime
+ * @param {boolean} isRunning
+ */
+ function mycallback(error, currentTime, isRunning)
+ {
+ if (error) {
+ console.error(error);
+ return;
+ }
+ callback(currentTime, isRunning);
+ }
+ this.target().animationModel._agent.getAnimationPlayerState(this.id(), mycallback);
+ },
+
+ __proto__: WebInspector.SDKObject.prototype
+}
+
+/**
+ * @constructor
+ * @extends {WebInspector.SDKObject}
+ * @param {!WebInspector.Target} target
+ * @param {!AnimationAgent.AnimationNode} payload
+ */
+WebInspector.AnimationModel.AnimationNode = function(target, payload)
+{
+ WebInspector.SDKObject.call(this, target);
+ this._payload = payload;
+}
+
+WebInspector.AnimationModel.AnimationNode.prototype = {
+ /**
+ * @return {number}
+ */
+ startDelay: function()
+ {
+ return this._payload.startDelay;
+ },
+
+ /**
+ * @return {number}
+ */
+ playbackRate: function()
+ {
+ return this._payload.playbackRate;
+ },
+
+ /**
+ * @return {number}
+ */
+ iterationStart: function()
+ {
+ return this._payload.iterationStart;
+ },
+
+ /**
+ * @return {number}
+ */
+ iterationCount: function()
+ {
+ return this._payload.iterationCount;
+ },
+
+ /**
+ * @return {number}
+ */
+ duration: function()
+ {
+ return this._payload.duration;
+ },
+
+ /**
+ * @return {number}
+ */
+ direction: function()
+ {
+ return this._payload.direction;
+ },
+
+ /**
+ * @return {number}
+ */
+ fillMode: function()
+ {
+ return this._payload.fillMode;
+ },
+
+ /**
+ * @return {number}
+ */
+ timeFraction: function()
+ {
+ return this._payload.timeFraction;
+ },
+
+ /**
+ * @return {string}
+ */
+ name: function()
+ {
+ return this._payload.name;
+ },
+
+ __proto__: WebInspector.SDKObject.prototype
+}

Powered by Google App Engine
This is Rietveld 408576698