| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <!-- | 2 <!-- |
| 3 Copyright 2016 The Chromium Authors. All rights reserved. | 3 Copyright 2016 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/utils.html"> |
| 8 <link rel="import" href="/tracing/value/diagnostics/diagnostic.html"> | 9 <link rel="import" href="/tracing/value/diagnostics/diagnostic.html"> |
| 9 | 10 |
| 10 <script> | 11 <script> |
| 11 'use strict'; | 12 'use strict'; |
| 12 | 13 |
| 13 tr.exportTo('tr.v.d', function() { | 14 tr.exportTo('tr.v.d', function() { |
| 14 /** | 15 /** |
| 15 * @constructor | 16 * @constructor |
| 16 * @param {!Object} info | 17 * @param {!Object} info |
| 17 * @param {string} info.benchmarkName | 18 * @param {string} info.benchmarkName |
| 18 * @param {undefined|string} info.label | 19 * @param {undefined|string} info.label |
| 19 * @param {undefined|!Object} info.storyGroupingKeys | 20 * @param {undefined|!Object} info.storyGroupingKeys |
| 20 * @param {undefined|string} info.storyDisplayName | 21 * @param {undefined|string} info.storyDisplayName |
| 21 * @param {string} info.storyUrl | 22 * @param {string} info.storyUrl |
| 22 * @param {number} info.storyRepeatCounter | 23 * @param {number} info.storyRepeatCounter |
| 23 * @param {number} info.storysetRepeatCounter | 24 * @param {number} info.storysetRepeatCounter |
| 24 * @param {number} info.benchmarkStartMs Milliseconds since Unix epoch. | 25 * @param {number} info.benchmarkStartMs Milliseconds since Unix epoch. |
| 25 */ | 26 */ |
| 26 function IterationInfo(info) { | 27 function IterationInfo(info) { |
| 27 this.benchmarkName_ = info.benchmarkName; | 28 this.benchmarkName_ = info.benchmarkName; |
| 28 this.benchmarkStart_ = new Date(info.benchmarkStartMs); | 29 this.benchmarkStart_ = new Date(info.benchmarkStartMs); |
| 29 this.label_ = info.label; | 30 this.label_ = info.label; |
| 30 this.storyDisplayName_ = info.storyDisplayName; | 31 this.storyDisplayName_ = info.storyDisplayName; |
| 31 this.storyGroupingKeys_ = info.storyGroupingKeys; | 32 this.storyGroupingKeys_ = info.storyGroupingKeys; |
| 32 this.storyRepeatCounter_ = info.storyRepeatCounter; | 33 this.storyRepeatCounter_ = info.storyRepeatCounter; |
| 33 this.storyUrl_ = info.storyUrl; | 34 this.storyUrl_ = info.storyUrl; |
| 34 this.storysetRepeatCounter_ = info.storysetRepeatCounter; | 35 this.storysetRepeatCounter_ = info.storysetRepeatCounter; |
| 35 } | 36 } |
| 36 | 37 |
| 38 // Diagnostics generally do not need a constant name or getFromValue(). |
| 39 // IterationInfo is a special kind of Diagnostic that is produced by |
| 40 // telemetry, which shepherds whole flocks of traces at once, and needs a |
| 41 // system to identify and find traces by these attributes. |
| 42 |
| 43 // Values produced by telemetry all have a single IterationInfo at this key in |
| 44 // their DiagnosticMap. |
| 45 IterationInfo.NAME = 'iteration'; |
| 46 |
| 47 /** |
| 48 * @param {!tr.v.Value} value |
| 49 * @return {(undefined|!IterationInfo)} |
| 50 */ |
| 51 IterationInfo.getFromValue = function(value) { |
| 52 return value.diagnostics.get(IterationInfo.NAME); |
| 53 }; |
| 54 |
| 37 IterationInfo.prototype = { | 55 IterationInfo.prototype = { |
| 38 __proto__: tr.v.d.Diagnostic.prototype, | 56 __proto__: tr.v.d.Diagnostic.prototype, |
| 39 | 57 |
| 58 addToValue: function(value) { |
| 59 value.diagnostics.add(IterationInfo.NAME, this); |
| 60 }, |
| 61 |
| 40 asDictInto_: function(d) { | 62 asDictInto_: function(d) { |
| 41 d.benchmarkName = this.benchmarkName; | 63 d.benchmarkName = this.benchmarkName; |
| 42 d.benchmarkStartMs = this.benchmarkStart.getTime(); | 64 d.benchmarkStartMs = this.benchmarkStart.getTime(); |
| 43 d.label = this.label; | 65 d.label = this.label; |
| 44 d.storyDisplayName = this.storyDisplayName; | 66 d.storyDisplayName = this.storyDisplayName; |
| 45 d.storyGroupingKeys = this.storyGroupingKeys; | 67 d.storyGroupingKeys = this.storyGroupingKeys; |
| 46 d.storyRepeatCounter = this.storyRepeatCounter; | 68 d.storyRepeatCounter = this.storyRepeatCounter; |
| 47 d.storyUrl = this.storyUrl; | 69 d.storyUrl = this.storyUrl; |
| 48 d.storysetRepeatCounter = this.storysetRepeatCounter; | 70 d.storysetRepeatCounter = this.storysetRepeatCounter; |
| 49 }, | 71 }, |
| 50 | 72 |
| 51 get displayLabel() { | 73 get displayLabel() { |
| 52 if (this.label) | 74 if (this.label) |
| 53 return this.label; | 75 return this.label; |
| 54 return this.benchmarkName + ' ' + this.benchmarkStartMs; | 76 return this.benchmarkName + ' ' + this.benchmarkStartString; |
| 55 }, | 77 }, |
| 56 | 78 |
| 57 get benchmarkName() { | 79 get benchmarkName() { |
| 58 return this.benchmarkName_; | 80 return this.benchmarkName_; |
| 59 }, | 81 }, |
| 60 | 82 |
| 61 get label() { | 83 get label() { |
| 62 return this.label_; | 84 return this.label_; |
| 63 }, | 85 }, |
| 64 | 86 |
| 65 get storyGroupingKeys() { | 87 get storyGroupingKeys() { |
| 66 return this.storyGroupingKeys_; | 88 return this.storyGroupingKeys_; |
| 67 }, | 89 }, |
| 68 | 90 |
| 69 get storyDisplayName() { | 91 get storyDisplayName() { |
| 70 return this.storyDisplayName_; | 92 return this.storyDisplayName_; |
| 71 }, | 93 }, |
| 72 | 94 |
| 73 get storyUrl() { | 95 get storyUrl() { |
| 74 return this.storyUrl_; | 96 return this.storyUrl_; |
| 75 }, | 97 }, |
| 76 | 98 |
| 77 get storyRepeatCounter() { | 99 get storyRepeatCounter() { |
| 78 return this.storyRepeatCounter_; | 100 return this.storyRepeatCounter_; |
| 79 }, | 101 }, |
| 80 | 102 |
| 103 get storyRepeatCounterLabel() { |
| 104 return 'story repeat ' + this.storyRepeatCounter; |
| 105 }, |
| 106 |
| 81 get storysetRepeatCounter() { | 107 get storysetRepeatCounter() { |
| 82 return this.storysetRepeatCounter_; | 108 return this.storysetRepeatCounter_; |
| 83 }, | 109 }, |
| 84 | 110 |
| 111 get storysetRepeatCounterLabel() { |
| 112 return 'storyset repeat ' + this.storysetRepeatCounter; |
| 113 }, |
| 114 |
| 85 get benchmarkStart() { | 115 get benchmarkStart() { |
| 86 return this.benchmarkStart_; | 116 return this.benchmarkStart_; |
| 117 }, |
| 118 |
| 119 get benchmarkStartString() { |
| 120 return tr.b.formatDate(this.benchmarkStart); |
| 87 } | 121 } |
| 88 }; | 122 }; |
| 89 | 123 |
| 90 IterationInfo.fromDict = function(d) { | 124 IterationInfo.fromDict = function(d) { |
| 91 return new IterationInfo(d); | 125 return new IterationInfo(d); |
| 92 }; | 126 }; |
| 93 | 127 |
| 94 tr.v.d.Diagnostic.register(IterationInfo, { | 128 tr.v.d.Diagnostic.register(IterationInfo, { |
| 95 elementName: 'tr-v-ui-generic-diagnostic-span' | 129 elementName: 'tr-v-ui-iteration-info-span' |
| 96 }); | 130 }); |
| 97 | 131 |
| 98 return { | 132 return { |
| 99 IterationInfo: IterationInfo | 133 IterationInfo: IterationInfo |
| 100 }; | 134 }; |
| 101 }); | 135 }); |
| 102 </script> | 136 </script> |
| OLD | NEW |