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

Side by Side Diff: third_party/web-animations-js/sources/src/timeline.js

Issue 917523002: Pull web-animations-js into third-party via the third_party/polymer/reproduce.sh script. Add necess… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove .travis-setup.sh and make a note in README.chromium. Created 5 years, 10 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 Google Inc. All rights reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15
16 (function(shared, scope, testing) {
17
18 scope.AnimationTimeline = function() {
19 this._players = [];
20 this.currentTime = undefined;
21 };
22
23 scope.AnimationTimeline.prototype = {
24 // FIXME: This needs to return the wrapped players in Web Animations Next
25 // TODO: Does this need to be sorted?
26 // TODO: Do we need to consider needsRetick?
27 getAnimationPlayers: function() {
28 this._discardPlayers();
29 return this._players.slice();
30 },
31 _discardPlayers: function() {
32 this._players = this._players.filter(function(player) {
33 return player.playState != 'finished' && player.playState != 'idle';
34 });
35 },
36 play: function(source) {
37 var player = new scope.Player(source);
38 this._players.push(player);
39 scope.restartWebAnimationsNextTick();
40 player.play();
41 return player;
42 },
43 };
44
45 var ticking = false;
46
47 scope.restartWebAnimationsNextTick = function() {
48 if (!ticking) {
49 ticking = true;
50 requestAnimationFrame(webAnimationsNextTick);
51 }
52 };
53
54 function webAnimationsNextTick(t) {
55 var timeline = window.document.timeline;
56 timeline.currentTime = t;
57 timeline._discardPlayers();
58 if (timeline._players.length == 0)
59 ticking = false;
60 else
61 requestAnimationFrame(webAnimationsNextTick);
62 }
63
64 var timeline = new scope.AnimationTimeline();
65 scope.timeline = timeline;
66
67 try {
68 Object.defineProperty(window.document, 'timeline', {
69 configurable: true,
70 get: function() { return timeline; }
71 });
72 } catch (e) { }
73 try {
74 window.document.timeline = timeline;
75 } catch (e) { }
76
77 })(webAnimationsShared, webAnimationsNext, webAnimationsTesting);
OLDNEW
« no previous file with comments | « third_party/web-animations-js/sources/src/tick.js ('k') | third_party/web-animations-js/sources/src/timing-utilities.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698