| 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 <link rel="import" href="/tracing/base/range_utils.html"> | 7 <link rel="import" href="/tracing/base/math/range_utils.html"> |
| 8 <link rel="import" href="/tracing/base/sorted_array_utils.html"> | 8 <link rel="import" href="/tracing/base/math/sorted_array_utils.html"> |
| 9 <link rel="import" href="/tracing/base/statistics.html"> | 9 <link rel="import" href="/tracing/base/math/statistics.html"> |
| 10 <link rel="import" href="/tracing/model/frame.html"> | 10 <link rel="import" href="/tracing/model/frame.html"> |
| 11 | 11 |
| 12 <script> | 12 <script> |
| 13 'use strict'; | 13 'use strict'; |
| 14 | 14 |
| 15 /** | 15 /** |
| 16 * @fileoverview Class for managing android-specific model meta data, | 16 * @fileoverview Class for managing android-specific model meta data, |
| 17 * such as rendering apps, and frames rendered. | 17 * such as rendering apps, and frames rendered. |
| 18 */ | 18 */ |
| 19 tr.exportTo('tr.model.helpers', function() { | 19 tr.exportTo('tr.model.helpers', function() { |
| 20 var Frame = tr.model.Frame; | 20 var Frame = tr.model.Frame; |
| 21 var Statistics = tr.b.Statistics; | 21 var Statistics = tr.b.math.Statistics; |
| 22 | 22 |
| 23 var UI_DRAW_TYPE = { | 23 var UI_DRAW_TYPE = { |
| 24 NONE: 'none', | 24 NONE: 'none', |
| 25 LEGACY: 'legacy', | 25 LEGACY: 'legacy', |
| 26 MARSHMALLOW: 'marshmallow' | 26 MARSHMALLOW: 'marshmallow' |
| 27 }; | 27 }; |
| 28 | 28 |
| 29 var UI_THREAD_DRAW_NAMES = { | 29 var UI_THREAD_DRAW_NAMES = { |
| 30 'performTraversals': UI_DRAW_TYPE.LEGACY, | 30 'performTraversals': UI_DRAW_TYPE.LEGACY, |
| 31 'Choreographer#doFrame': UI_DRAW_TYPE.MARSHMALLOW | 31 'Choreographer#doFrame': UI_DRAW_TYPE.MARSHMALLOW |
| (...skipping 30 matching lines...) Expand all Loading... |
| 62 return new Frame(events, threadTimeRanges, args); | 62 return new Frame(events, threadTimeRanges, args); |
| 63 } | 63 } |
| 64 | 64 |
| 65 function findOverlappingDrawFrame(renderThread, uiDrawSlice) { | 65 function findOverlappingDrawFrame(renderThread, uiDrawSlice) { |
| 66 if (!renderThread) | 66 if (!renderThread) |
| 67 return undefined; | 67 return undefined; |
| 68 | 68 |
| 69 // of all top level renderthread slices, find the one that has a 'sync' | 69 // of all top level renderthread slices, find the one that has a 'sync' |
| 70 // within the uiDrawSlice | 70 // within the uiDrawSlice |
| 71 var overlappingDrawFrame; | 71 var overlappingDrawFrame; |
| 72 var slices = tr.b.iterateOverIntersectingIntervals( | 72 var slices = tr.b.math.iterateOverIntersectingIntervals( |
| 73 renderThread.sliceGroup.slices, | 73 renderThread.sliceGroup.slices, |
| 74 function(range) { return range.start; }, | 74 function(range) { return range.start; }, |
| 75 function(range) { return range.end; }, | 75 function(range) { return range.end; }, |
| 76 uiDrawSlice.start, | 76 uiDrawSlice.start, |
| 77 uiDrawSlice.end, | 77 uiDrawSlice.end, |
| 78 function(rtDrawSlice) { | 78 function(rtDrawSlice) { |
| 79 if (rtDrawSlice.title === RENDER_THREAD_DRAW_NAME) { | 79 if (rtDrawSlice.title === RENDER_THREAD_DRAW_NAME) { |
| 80 var rtSyncSlice = rtDrawSlice.findDescendentSlice(THREAD_SYNC_NAME); | 80 var rtSyncSlice = rtDrawSlice.findDescendentSlice(THREAD_SYNC_NAME); |
| 81 if (rtSyncSlice && | 81 if (rtSyncSlice && |
| 82 rtSyncSlice.start >= uiDrawSlice.start && | 82 rtSyncSlice.start >= uiDrawSlice.start && |
| (...skipping 24 matching lines...) Expand all Loading... |
| 107 slice.title === 'setupListItem' || | 107 slice.title === 'setupListItem' || |
| 108 slice.title === 'deliverInputEvent' || | 108 slice.title === 'deliverInputEvent' || |
| 109 slice.title === 'RV Scroll') | 109 slice.title === 'RV Scroll') |
| 110 preFrameEvents.push(slice); | 110 preFrameEvents.push(slice); |
| 111 }); | 111 }); |
| 112 uiThread.asyncSliceGroup.slices.forEach(function(slice) { | 112 uiThread.asyncSliceGroup.slices.forEach(function(slice) { |
| 113 if (slice.title === 'deliverInputEvent') | 113 if (slice.title === 'deliverInputEvent') |
| 114 preFrameEvents.push(slice); | 114 preFrameEvents.push(slice); |
| 115 }); | 115 }); |
| 116 | 116 |
| 117 return tr.b.mergeRanges( | 117 return tr.b.math.mergeRanges( |
| 118 tr.b.convertEventsToRanges(preFrameEvents), | 118 tr.b.math.convertEventsToRanges(preFrameEvents), |
| 119 3, | 119 3, |
| 120 function(events) { | 120 function(events) { |
| 121 return { | 121 return { |
| 122 start: events[0].min, | 122 start: events[0].min, |
| 123 end: events[events.length - 1].max | 123 end: events[events.length - 1].max |
| 124 }; | 124 }; |
| 125 }); | 125 }); |
| 126 } | 126 } |
| 127 | 127 |
| 128 function getFrameStartTime(traversalStart, preTraversalWorkRanges) { | 128 function getFrameStartTime(traversalStart, preTraversalWorkRanges) { |
| 129 var preTraversalWorkRange = tr.b.findClosestIntervalInSortedIntervals( | 129 var preTraversalWorkRange = tr.b.math.findClosestIntervalInSortedIntervals( |
| 130 preTraversalWorkRanges, | 130 preTraversalWorkRanges, |
| 131 function(range) { return range.start; }, | 131 function(range) { return range.start; }, |
| 132 function(range) { return range.end; }, | 132 function(range) { return range.end; }, |
| 133 traversalStart, | 133 traversalStart, |
| 134 3); | 134 3); |
| 135 | 135 |
| 136 if (preTraversalWorkRange) | 136 if (preTraversalWorkRange) |
| 137 return preTraversalWorkRange.start; | 137 return preTraversalWorkRange.start; |
| 138 return traversalStart; | 138 return traversalStart; |
| 139 } | 139 } |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 } | 332 } |
| 333 return this.animations_; | 333 return this.animations_; |
| 334 } | 334 } |
| 335 }; | 335 }; |
| 336 | 336 |
| 337 return { | 337 return { |
| 338 AndroidApp, | 338 AndroidApp, |
| 339 }; | 339 }; |
| 340 }); | 340 }); |
| 341 </script> | 341 </script> |
| OLD | NEW |