OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <!-- | 2 <!-- |
3 Copyright (c) 2015 The Chromium Authors. All rights reserved. | 3 Copyright (c) 2015 The Chromium Authors. All rights reserved. |
4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
5 found in the LICENSE file. | 5 found in the LICENSE file. |
6 --> | 6 --> |
7 | 7 |
8 <link rel="import" href="/tracing/base/range_utils.html"> | 8 <link rel="import" href="/tracing/base/math/range_utils.html"> |
9 <link rel="import" href="/tracing/extras/chrome/cc/input_latency_async_slice.htm
l"> | 9 <link rel="import" href="/tracing/extras/chrome/cc/input_latency_async_slice.htm
l"> |
10 <link rel="import" href="/tracing/importer/proto_expectation.html"> | 10 <link rel="import" href="/tracing/importer/proto_expectation.html"> |
11 <link rel="import" href="/tracing/model/user_model/user_expectation.html"> | 11 <link rel="import" href="/tracing/model/user_model/user_expectation.html"> |
12 | 12 |
13 <script> | 13 <script> |
14 'use strict'; | 14 'use strict'; |
15 | 15 |
16 tr.exportTo('tr.importer', function() { | 16 tr.exportTo('tr.importer', function() { |
17 var ProtoExpectation = tr.importer.ProtoExpectation; | 17 var ProtoExpectation = tr.importer.ProtoExpectation; |
18 var INITIATOR_TYPE = tr.model.um.INITIATOR_TYPE; | 18 var INITIATOR_TYPE = tr.model.um.INITIATOR_TYPE; |
(...skipping 770 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
789 }); | 789 }); |
790 | 790 |
791 | 791 |
792 // Time ranges where animations are actually running will be collected here. | 792 // Time ranges where animations are actually running will be collected here. |
793 // Each element will contain {min, max, animation}. | 793 // Each element will contain {min, max, animation}. |
794 var animationRanges = []; | 794 var animationRanges = []; |
795 | 795 |
796 // This helper function will be called when a time range is found | 796 // This helper function will be called when a time range is found |
797 // during which the animation is actually running. | 797 // during which the animation is actually running. |
798 function pushAnimationRange(start, end, animation) { | 798 function pushAnimationRange(start, end, animation) { |
799 var range = tr.b.Range.fromExplicitRange(start, end); | 799 var range = tr.b.math.Range.fromExplicitRange(start, end); |
800 range.animation = animation; | 800 range.animation = animation; |
801 animationRanges.push(range); | 801 animationRanges.push(range); |
802 } | 802 } |
803 | 803 |
804 animationEvents.forEach(function(animation) { | 804 animationEvents.forEach(function(animation) { |
805 if (animation.subSlices.length === 0) { | 805 if (animation.subSlices.length === 0) { |
806 pushAnimationRange(animation.start, animation.end, animation); | 806 pushAnimationRange(animation.start, animation.end, animation); |
807 } else { | 807 } else { |
808 // Now run a state machine over the animation's subSlices, which | 808 // Now run a state machine over the animation's subSlices, which |
809 // indicate the animations running/paused/finished states, in order to | 809 // indicate the animations running/paused/finished states, in order to |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1174 | 1174 |
1175 for (var pe of protoExpectations) { | 1175 for (var pe of protoExpectations) { |
1176 if (pe.type !== ProtoExpectation.ANIMATION_TYPE) { | 1176 if (pe.type !== ProtoExpectation.ANIMATION_TYPE) { |
1177 newPEs.push(pe); | 1177 newPEs.push(pe); |
1178 continue; | 1178 continue; |
1179 } | 1179 } |
1180 | 1180 |
1181 var frameEvents = []; | 1181 var frameEvents = []; |
1182 // TODO(benjhayden): Use frame blame contexts here. | 1182 // TODO(benjhayden): Use frame blame contexts here. |
1183 for (var pid of Object.keys(modelHelper.rendererHelpers)) { | 1183 for (var pid of Object.keys(modelHelper.rendererHelpers)) { |
1184 var range = tr.b.Range.fromExplicitRange(pe.start, pe.end); | 1184 var range = tr.b.math.Range.fromExplicitRange(pe.start, pe.end); |
1185 frameEvents.push.apply(frameEvents, | 1185 frameEvents.push.apply(frameEvents, |
1186 range.filterArray(frameEventsByPid[pid], e => e.start)); | 1186 range.filterArray(frameEventsByPid[pid], e => e.start)); |
1187 } | 1187 } |
1188 | 1188 |
1189 // If a tree falls in a forest... | 1189 // If a tree falls in a forest... |
1190 // If there were not actually any frames while the animation was | 1190 // If there were not actually any frames while the animation was |
1191 // running, then it wasn't really an animation, now, was it? | 1191 // running, then it wasn't really an animation, now, was it? |
1192 // Philosophy aside, the system_health Animation metrics fail hard if | 1192 // Philosophy aside, the system_health Animation metrics fail hard if |
1193 // there are no frames in an AnimationExpectation. | 1193 // there are no frames in an AnimationExpectation. |
1194 // Since WebGL animations don't generate this type of frame event, | 1194 // Since WebGL animations don't generate this type of frame event, |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1268 } | 1268 } |
1269 | 1269 |
1270 return { | 1270 return { |
1271 findInputExpectations, | 1271 findInputExpectations, |
1272 compareEvents, | 1272 compareEvents, |
1273 CSS_ANIMATION_TITLE, | 1273 CSS_ANIMATION_TITLE, |
1274 INITIATOR_TYPE, | 1274 INITIATOR_TYPE, |
1275 }; | 1275 }; |
1276 }); | 1276 }); |
1277 </script> | 1277 </script> |
OLD | NEW |