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

Side by Side Diff: polymer_0.5.0/bower_components/web-animations-js/src/timeline.js

Issue 786953007: npm_modules: Fork bower_components into Polymer 0.4.0 and 0.5.0 versions (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Created 5 years, 11 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 maxifill
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.restartMaxifillTick();
40 player.play();
41 return player;
42 },
43 };
44
45 var ticking = false;
46
47 scope.restartMaxifillTick = function() {
48 if (!ticking) {
49 ticking = true;
50 requestAnimationFrame(maxifillTick);
51 }
52 };
53
54 function maxifillTick(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(maxifillTick);
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, webAnimationsMaxifill, webAnimationsTesting);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698