OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
173 return result; | 173 return result; |
174 } | 174 } |
175 | 175 |
176 /** | 176 /** |
177 * @param {!SDK.NetworkRequest} request | 177 * @param {!SDK.NetworkRequest} request |
178 * @param {!Network.NetworkTimeCalculator} calculator | 178 * @param {!Network.NetworkTimeCalculator} calculator |
179 * @return {!Element} | 179 * @return {!Element} |
180 */ | 180 */ |
181 static createTimingTable(request, calculator) { | 181 static createTimingTable(request, calculator) { |
182 var tableElement = createElementWithClass('table', 'network-timing-table'); | 182 var tableElement = createElementWithClass('table', 'network-timing-table'); |
| 183 UI.appendStyle(tableElement, 'network/networkTimingTable.css'); |
183 var colgroup = tableElement.createChild('colgroup'); | 184 var colgroup = tableElement.createChild('colgroup'); |
184 colgroup.createChild('col', 'labels'); | 185 colgroup.createChild('col', 'labels'); |
185 colgroup.createChild('col', 'bars'); | 186 colgroup.createChild('col', 'bars'); |
186 colgroup.createChild('col', 'duration'); | 187 colgroup.createChild('col', 'duration'); |
187 | 188 |
188 var timeRanges = Network.RequestTimingView.calculateRequestTimeRanges(reques
t, calculator.minimumBoundary()); | 189 var timeRanges = Network.RequestTimingView.calculateRequestTimeRanges(reques
t, calculator.minimumBoundary()); |
189 var startTime = timeRanges.map(r => r.start).reduce((a, b) => Math.min(a, b)
); | 190 var startTime = timeRanges.map(r => r.start).reduce((a, b) => Math.min(a, b)
); |
190 var endTime = timeRanges.map(r => r.end).reduce((a, b) => Math.max(a, b)); | 191 var endTime = timeRanges.map(r => r.end).reduce((a, b) => Math.max(a, b)); |
191 var scale = 100 / (endTime - startTime); | 192 var scale = 100 / (endTime - startTime); |
192 | 193 |
(...skipping 12 matching lines...) Expand all Loading... |
205 for (var i = 0; i < timeRanges.length; ++i) { | 206 for (var i = 0; i < timeRanges.length; ++i) { |
206 var range = timeRanges[i]; | 207 var range = timeRanges[i]; |
207 var rangeName = range.name; | 208 var rangeName = range.name; |
208 if (rangeName === Network.RequestTimeRangeNames.Total) { | 209 if (rangeName === Network.RequestTimeRangeNames.Total) { |
209 totalDuration = range.end - range.start; | 210 totalDuration = range.end - range.start; |
210 continue; | 211 continue; |
211 } | 212 } |
212 if (rangeName === Network.RequestTimeRangeNames.Push) { | 213 if (rangeName === Network.RequestTimeRangeNames.Push) { |
213 createHeader(Common.UIString('Server Push')); | 214 createHeader(Common.UIString('Server Push')); |
214 } else if (rangeName === Network.RequestTimeRangeNames.Queueing) { | 215 } else if (rangeName === Network.RequestTimeRangeNames.Queueing) { |
215 queueingHeader = tableElement.createChild('tr', 'network-timing-table-
header'); | 216 queueingHeader = tableElement.createChild('tr', 'network-timing-table-he
ader'); |
216 queueingHeader.createChild('td').createTextChild(Common.UIString('Reso
urce Scheduling')); | 217 queueingHeader.createChild('td').createTextChild(Common.UIString('Resour
ce Scheduling')); |
217 queueingHeader.createChild('td').createTextChild(''); | 218 queueingHeader.createChild('td').createTextChild(''); |
218 queueingHeader.createChild('td').createTextChild(Common.UIString('TIME
')); | 219 queueingHeader.createChild('td').createTextChild(Common.UIString('TIME')
); |
219 } else if (Network.RequestTimingView.ConnectionSetupRangeNames.has(rangeNa
me)) { | 220 } else if (Network.RequestTimingView.ConnectionSetupRangeNames.has(rangeNa
me)) { |
220 if (!connectionHeader) | 221 if (!connectionHeader) |
221 connectionHeader = createHeader(Common.UIString('Connection Start')); | 222 connectionHeader = createHeader(Common.UIString('Connection Start')); |
222 } else { | 223 } else { |
223 if (!dataHeader) | 224 if (!dataHeader) |
224 dataHeader = createHeader(Common.UIString('Request/Response')); | 225 dataHeader = createHeader(Common.UIString('Request/Response')); |
225 } | 226 } |
226 | 227 |
227 var left = (scale * (range.start - startTime)); | 228 var left = (scale * (range.start - startTime)); |
228 var right = (scale * (endTime - range.end)); | 229 var right = (scale * (endTime - range.end)); |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 this._request.removeEventListener(SDK.NetworkRequest.Events.TimingChanged, t
his._refresh, this); | 333 this._request.removeEventListener(SDK.NetworkRequest.Events.TimingChanged, t
his._refresh, this); |
333 this._request.removeEventListener(SDK.NetworkRequest.Events.FinishedLoading,
this._refresh, this); | 334 this._request.removeEventListener(SDK.NetworkRequest.Events.FinishedLoading,
this._refresh, this); |
334 this._calculator.removeEventListener(Network.NetworkTimeCalculator.Events.Bo
undariesChanged, this._refresh, this); | 335 this._calculator.removeEventListener(Network.NetworkTimeCalculator.Events.Bo
undariesChanged, this._refresh, this); |
335 } | 336 } |
336 | 337 |
337 _refresh() { | 338 _refresh() { |
338 if (this._tableElement) | 339 if (this._tableElement) |
339 this._tableElement.remove(); | 340 this._tableElement.remove(); |
340 | 341 |
341 this._tableElement = Network.RequestTimingView.createTimingTable(this._reque
st, this._calculator); | 342 this._tableElement = Network.RequestTimingView.createTimingTable(this._reque
st, this._calculator); |
| 343 this._tableElement.classList.add('resource-timing-table'); |
342 this.element.appendChild(this._tableElement); | 344 this.element.appendChild(this._tableElement); |
343 } | 345 } |
344 }; | 346 }; |
345 | 347 |
346 /** @enum {string} */ | 348 /** @enum {string} */ |
347 Network.RequestTimeRangeNames = { | 349 Network.RequestTimeRangeNames = { |
348 Push: 'push', | 350 Push: 'push', |
349 Queueing: 'queueing', | 351 Queueing: 'queueing', |
350 Blocking: 'blocking', | 352 Blocking: 'blocking', |
351 Connecting: 'connecting', | 353 Connecting: 'connecting', |
(...skipping 10 matching lines...) Expand all Loading... |
362 }; | 364 }; |
363 | 365 |
364 Network.RequestTimingView.ConnectionSetupRangeNames = new Set([ | 366 Network.RequestTimingView.ConnectionSetupRangeNames = new Set([ |
365 Network.RequestTimeRangeNames.Queueing, Network.RequestTimeRangeNames.Blocking
, | 367 Network.RequestTimeRangeNames.Queueing, Network.RequestTimeRangeNames.Blocking
, |
366 Network.RequestTimeRangeNames.Connecting, Network.RequestTimeRangeNames.DNS, N
etwork.RequestTimeRangeNames.Proxy, | 368 Network.RequestTimeRangeNames.Connecting, Network.RequestTimeRangeNames.DNS, N
etwork.RequestTimeRangeNames.Proxy, |
367 Network.RequestTimeRangeNames.SSL | 369 Network.RequestTimeRangeNames.SSL |
368 ]); | 370 ]); |
369 | 371 |
370 /** @typedef {{name: !Network.RequestTimeRangeNames, start: number, end: number}
} */ | 372 /** @typedef {{name: !Network.RequestTimeRangeNames, start: number, end: number}
} */ |
371 Network.RequestTimeRange; | 373 Network.RequestTimeRange; |
OLD | NEW |