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/fixed_color_scheme.html"> | 8 <link rel="import" href="/tracing/base/fixed_color_scheme.html"> |
9 <link rel="import" href="/tracing/extras/chrome/chrome_user_friendly_category_dr
iver.html"> | 9 <link rel="import" href="/tracing/extras/chrome/chrome_user_friendly_category_dr
iver.html"> |
10 <link rel="import" href="/tracing/metrics/all_fixed_color_schemes.html"> | 10 <link rel="import" href="/tracing/metrics/all_fixed_color_schemes.html"> |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 get displayElement() { | 78 get displayElement() { |
79 return this.displayElement_; | 79 return this.displayElement_; |
80 } | 80 } |
81 | 81 |
82 get stringPercent() { | 82 get stringPercent() { |
83 return '100%'; | 83 return '100%'; |
84 } | 84 } |
85 } | 85 } |
86 | 86 |
87 class BreakdownTableRow { | 87 class BreakdownTableRow { |
88 constructor(name, value, unit, color) { | 88 constructor(name, value, related, unit, color) { |
89 this.name_ = name; | 89 this.name_ = name; |
90 this.value = value; | 90 this.value = value; |
| 91 this.related = related; |
91 this.unit = unit; | 92 this.unit = unit; |
92 | 93 |
93 if (!this.isHistogram && typeof value !== 'number') { | 94 this.histogram = related; |
| 95 if (value instanceof tr.v.Histogram) { |
| 96 this.histogram = value; |
| 97 this.unit = value.unit; |
| 98 } |
| 99 |
| 100 if (!this.histogram && typeof value !== 'number') { |
94 throw new Error('unsupported value ' + value); | 101 throw new Error('unsupported value ' + value); |
95 } | 102 } |
96 | 103 |
97 this.tableSum_ = undefined; | 104 this.tableSum_ = undefined; |
98 this.keySpan_ = undefined; | 105 this.keySpan_ = undefined; |
99 | 106 |
100 this.color_ = color; | 107 this.color_ = color; |
101 const hsl = this.color.toHSL(); | 108 const hsl = this.color.toHSL(); |
102 hsl.l *= 0.85; | 109 hsl.l *= 0.85; |
103 this.highlightedColor_ = tr.b.Color.fromHSL(hsl); | 110 this.highlightedColor_ = tr.b.Color.fromHSL(hsl); |
104 | 111 |
105 if (this.isHistogram) { | 112 if (this.unit) { |
106 this.displayElement_ = tr.v.ui.createScalarSpan(this.numberValue, { | 113 this.displayElement_ = tr.v.ui.createScalarSpan(this.numberValue, { |
107 unit: this.value.unit, | 114 unit: this.unit, |
108 }); | 115 }); |
109 } else { | 116 } else { |
110 this.displayElement_ = tr.ui.b.createSpan({ | 117 this.displayElement_ = tr.ui.b.createSpan({ |
111 textContent: this.stringValue, | 118 textContent: this.stringValue, |
112 }); | 119 }); |
113 } | 120 } |
114 } | 121 } |
115 | 122 |
116 get isHistogram() { | 123 get isHistogram() { |
117 return this.value instanceof tr.v.Histogram; | 124 return this.value instanceof tr.v.Histogram; |
118 } | 125 } |
119 | 126 |
120 get name() { | 127 get name() { |
121 return this.name_; | 128 return this.name_; |
122 } | 129 } |
123 | 130 |
124 get color() { | 131 get color() { |
125 return this.color_; | 132 return this.color_; |
126 } | 133 } |
127 | 134 |
128 get highlightedColor() { | 135 get highlightedColor() { |
129 return this.highlightedColor_; | 136 return this.highlightedColor_; |
130 } | 137 } |
131 | 138 |
132 get keySpan() { | 139 get keySpan() { |
133 if (this.keySpan_ === undefined) { | 140 if (this.keySpan_ === undefined) { |
134 if (this.isHistogram) { | 141 if (this.histogram) { |
135 this.keySpan_ = document.createElement('tr-ui-a-analysis-link'); | 142 this.keySpan_ = document.createElement('tr-ui-a-analysis-link'); |
136 this.keySpan_.setSelectionAndContent([this.value.name], this.name); | 143 this.keySpan_.setSelectionAndContent( |
| 144 [this.histogram.name], this.name); |
137 this.keySpan_.color = this.color; | 145 this.keySpan_.color = this.color; |
138 this.keySpan_.title = this.value.name; | 146 this.keySpan_.title = this.histogram.name; |
139 } else { | 147 } else { |
140 this.keySpan_ = document.createElement('span'); | 148 this.keySpan_ = document.createElement('span'); |
141 this.keySpan_.innerText = this.name; | 149 this.keySpan_.innerText = this.name; |
142 this.keySpan_.style.color = this.color; | 150 this.keySpan_.style.color = this.color; |
143 } | 151 } |
144 } | 152 } |
145 return this.keySpan_; | 153 return this.keySpan_; |
146 } | 154 } |
147 | 155 |
148 /** | 156 /** |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
277 cat = cat[cat.length - 1]; | 285 cat = cat[cat.length - 1]; |
278 return tr.e.chrome.ChromeUserFriendlyCategoryDriver.getColor(cat); | 286 return tr.e.chrome.ChromeUserFriendlyCategoryDriver.getColor(cat); |
279 }; | 287 }; |
280 } else if (this.diagnostic.colorScheme !== undefined) { | 288 } else if (this.diagnostic.colorScheme !== undefined) { |
281 colorScheme = (name) => tr.b.FixedColorSchemeRegistry.lookUp( | 289 colorScheme = (name) => tr.b.FixedColorSchemeRegistry.lookUp( |
282 this.diagnostic.colorScheme).getColor(name); | 290 this.diagnostic.colorScheme).getColor(name); |
283 } else { | 291 } else { |
284 colorScheme = (name) => DEFAULT_COLOR_SCHEME.colorForKey(name); | 292 colorScheme = (name) => DEFAULT_COLOR_SCHEME.colorForKey(name); |
285 } | 293 } |
286 | 294 |
| 295 let related = new Map(); |
| 296 if (this.diagnostic_ instanceof tr.v.d.Breakdown && this.histogram_) { |
| 297 related = this.histogram_.diagnostics.get(this.name_); |
| 298 } |
| 299 |
287 const tableRows = []; | 300 const tableRows = []; |
288 let tableSum = 0; | 301 let tableSum = 0; |
289 const histogramNames = []; | 302 const histogramNames = []; |
290 for (const [name, value] of this.diagnostic) { | 303 for (const [name, value] of this.diagnostic) { |
291 const row = new BreakdownTableRow( | 304 const row = new BreakdownTableRow( |
292 name, value, this.chart_.unit, colorScheme(name)); | 305 name, |
| 306 value, |
| 307 related.get(name), |
| 308 this.chart_.unit, |
| 309 colorScheme(name)); |
293 tableRows.push(row); | 310 tableRows.push(row); |
294 if (row.numberValue !== undefined) tableSum += row.numberValue; | 311 if (row.numberValue !== undefined) tableSum += row.numberValue; |
295 if (row.isHistogram) { | 312 if (row.histogram) { |
296 histogramNames.push(value.name); | 313 histogramNames.push(row.histogram.name); |
297 } | 314 } |
298 } | 315 } |
299 tableRows.sort((x, y) => x.compare(y)); | 316 tableRows.sort((x, y) => x.compare(y)); |
300 | 317 |
301 if (tableSum > 0) { | 318 if (tableSum > 0) { |
302 let summaryDisplayElement = tableSum; | 319 let summaryDisplayElement = tableSum; |
303 if (this.chart_.unit !== undefined) { | 320 if (this.chart_.unit !== undefined) { |
304 summaryDisplayElement = this.chart_.unit.format(tableSum); | 321 summaryDisplayElement = this.chart_.unit.format(tableSum); |
305 } | 322 } |
306 summaryDisplayElement = tr.ui.b.createSpan({ | 323 summaryDisplayElement = tr.ui.b.createSpan({ |
(...skipping 30 matching lines...) Expand all Loading... |
337 this.$.container.style.display = 'block'; | 354 this.$.container.style.display = 'block'; |
338 this.$.empty.style.display = 'none'; | 355 this.$.empty.style.display = 'none'; |
339 this.chart_.data = [chartData]; | 356 this.chart_.data = [chartData]; |
340 } | 357 } |
341 } | 358 } |
342 }); | 359 }); |
343 | 360 |
344 return {}; | 361 return {}; |
345 }); | 362 }); |
346 </script> | 363 </script> |
OLD | NEW |