Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * Copyright (C) 2012 Intel Inc. All rights reserved. | 3 * Copyright (C) 2012 Intel Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 48 bool allowRedirectDetails) | 48 bool allowRedirectDetails) |
| 49 : PerformanceEntry( | 49 : PerformanceEntry( |
| 50 info.initialURL().getString(), | 50 info.initialURL().getString(), |
| 51 "resource", | 51 "resource", |
| 52 PerformanceBase::monotonicTimeToDOMHighResTimeStamp(timeOrigin, | 52 PerformanceBase::monotonicTimeToDOMHighResTimeStamp(timeOrigin, |
| 53 startTime), | 53 startTime), |
| 54 PerformanceBase::monotonicTimeToDOMHighResTimeStamp( | 54 PerformanceBase::monotonicTimeToDOMHighResTimeStamp( |
| 55 timeOrigin, | 55 timeOrigin, |
| 56 info.loadFinishTime())), | 56 info.loadFinishTime())), |
| 57 m_initiatorType(info.initiatorType()), | 57 m_initiatorType(info.initiatorType()), |
| 58 m_alpnNegotiatedProtocol(info.finalResponse().alpnNegotiatedProtocol()), | |
| 59 m_connectionInfo(info.finalResponse().connectionInfo()), | |
| 58 m_timeOrigin(timeOrigin), | 60 m_timeOrigin(timeOrigin), |
| 59 m_timing(info.finalResponse().resourceLoadTiming()), | 61 m_timing(info.finalResponse().resourceLoadTiming()), |
| 60 m_lastRedirectEndTime(lastRedirectEndTime), | 62 m_lastRedirectEndTime(lastRedirectEndTime), |
| 61 m_finishTime(info.loadFinishTime()), | 63 m_finishTime(info.loadFinishTime()), |
| 62 m_transferSize(info.transferSize()), | 64 m_transferSize(info.transferSize()), |
| 63 m_encodedBodySize(info.finalResponse().encodedBodyLength()), | 65 m_encodedBodySize(info.finalResponse().encodedBodyLength()), |
| 64 m_decodedBodySize(info.finalResponse().decodedBodyLength()), | 66 m_decodedBodySize(info.finalResponse().decodedBodyLength()), |
| 65 m_didReuseConnection(info.finalResponse().connectionReused()), | 67 m_didReuseConnection(info.finalResponse().connectionReused()), |
| 66 m_allowTimingDetails(allowTimingDetails), | 68 m_allowTimingDetails(allowTimingDetails), |
| 67 m_allowRedirectDetails(allowRedirectDetails) {} | 69 m_allowRedirectDetails(allowRedirectDetails) {} |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 96 } | 98 } |
| 97 | 99 |
| 98 unsigned long long PerformanceResourceTiming::getDecodedBodySize() const { | 100 unsigned long long PerformanceResourceTiming::getDecodedBodySize() const { |
| 99 return m_decodedBodySize; | 101 return m_decodedBodySize; |
| 100 } | 102 } |
| 101 | 103 |
| 102 AtomicString PerformanceResourceTiming::initiatorType() const { | 104 AtomicString PerformanceResourceTiming::initiatorType() const { |
| 103 return m_initiatorType; | 105 return m_initiatorType; |
| 104 } | 106 } |
| 105 | 107 |
| 108 AtomicString PerformanceResourceTiming::alpnNegotiatedProtocol() const { | |
| 109 return m_alpnNegotiatedProtocol; | |
| 110 } | |
| 111 | |
| 112 AtomicString PerformanceResourceTiming::connectionInfo() const { | |
| 113 return m_connectionInfo; | |
| 114 } | |
| 115 | |
| 116 AtomicString PerformanceResourceTiming::getNextHopProtocol( | |
| 117 const AtomicString& alpnNegotiatedProtocol, | |
| 118 const AtomicString& connectionInfo) { | |
| 119 // Fallback to connectionInfo when alpnNegotiatedProtocol is unknowm. | |
|
kinuko
2017/04/18 05:46:25
unknowm -> unknown
| |
| 120 AtomicString returnedProtocol = alpnNegotiatedProtocol == "unknown" | |
| 121 ? connectionInfo | |
| 122 : alpnNegotiatedProtocol; | |
| 123 // Fallback to "http/1.1" when connectionInfo is also unknown. | |
| 124 returnedProtocol = | |
| 125 returnedProtocol == "unknown" ? "http/1.1" : returnedProtocol; | |
| 126 | |
| 127 if (returnedProtocol.contains("quic")) { | |
| 128 returnedProtocol = "hq"; | |
| 129 } | |
|
kinuko
2017/04/18 05:46:25
nit: no braces needed for one-line body
| |
| 130 return returnedProtocol; | |
| 131 } | |
| 132 | |
| 133 AtomicString PerformanceResourceTiming::nextHopProtocol() const { | |
| 134 return PerformanceResourceTiming::getNextHopProtocol(alpnNegotiatedProtocol(), | |
| 135 connectionInfo()); | |
|
kinuko
2017/04/18 05:46:25
nit: indent looks off (please just run git cl form
| |
| 136 } | |
| 137 | |
| 106 DOMHighResTimeStamp PerformanceResourceTiming::workerStart() const { | 138 DOMHighResTimeStamp PerformanceResourceTiming::workerStart() const { |
| 107 ResourceLoadTiming* timing = resourceLoadTiming(); | 139 ResourceLoadTiming* timing = resourceLoadTiming(); |
| 108 if (!timing || timing->workerStart() == 0.0) | 140 if (!timing || timing->workerStart() == 0.0) |
| 109 return 0.0; | 141 return 0.0; |
| 110 | 142 |
| 111 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp( | 143 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp( |
| 112 m_timeOrigin, timing->workerStart()); | 144 m_timeOrigin, timing->workerStart()); |
| 113 } | 145 } |
| 114 | 146 |
| 115 DOMHighResTimeStamp PerformanceResourceTiming::workerReady() const { | 147 DOMHighResTimeStamp PerformanceResourceTiming::workerReady() const { |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 267 unsigned long long PerformanceResourceTiming::decodedBodySize() const { | 299 unsigned long long PerformanceResourceTiming::decodedBodySize() const { |
| 268 if (!allowTimingDetails()) | 300 if (!allowTimingDetails()) |
| 269 return 0; | 301 return 0; |
| 270 | 302 |
| 271 return getDecodedBodySize(); | 303 return getDecodedBodySize(); |
| 272 } | 304 } |
| 273 | 305 |
| 274 void PerformanceResourceTiming::buildJSONValue(V8ObjectBuilder& builder) const { | 306 void PerformanceResourceTiming::buildJSONValue(V8ObjectBuilder& builder) const { |
| 275 PerformanceEntry::buildJSONValue(builder); | 307 PerformanceEntry::buildJSONValue(builder); |
| 276 builder.addString("initiatorType", initiatorType()); | 308 builder.addString("initiatorType", initiatorType()); |
| 309 builder.addString("nextHopProtocol", nextHopProtocol()); | |
| 277 builder.addNumber("workerStart", workerStart()); | 310 builder.addNumber("workerStart", workerStart()); |
| 278 builder.addNumber("redirectStart", redirectStart()); | 311 builder.addNumber("redirectStart", redirectStart()); |
| 279 builder.addNumber("redirectEnd", redirectEnd()); | 312 builder.addNumber("redirectEnd", redirectEnd()); |
| 280 builder.addNumber("fetchStart", fetchStart()); | 313 builder.addNumber("fetchStart", fetchStart()); |
| 281 builder.addNumber("domainLookupStart", domainLookupStart()); | 314 builder.addNumber("domainLookupStart", domainLookupStart()); |
| 282 builder.addNumber("domainLookupEnd", domainLookupEnd()); | 315 builder.addNumber("domainLookupEnd", domainLookupEnd()); |
| 283 builder.addNumber("connectStart", connectStart()); | 316 builder.addNumber("connectStart", connectStart()); |
| 284 builder.addNumber("connectEnd", connectEnd()); | 317 builder.addNumber("connectEnd", connectEnd()); |
| 285 builder.addNumber("secureConnectionStart", secureConnectionStart()); | 318 builder.addNumber("secureConnectionStart", secureConnectionStart()); |
| 286 builder.addNumber("requestStart", requestStart()); | 319 builder.addNumber("requestStart", requestStart()); |
| 287 builder.addNumber("responseStart", responseStart()); | 320 builder.addNumber("responseStart", responseStart()); |
| 288 builder.addNumber("responseEnd", responseEnd()); | 321 builder.addNumber("responseEnd", responseEnd()); |
| 289 builder.addNumber("transferSize", transferSize()); | 322 builder.addNumber("transferSize", transferSize()); |
| 290 builder.addNumber("encodedBodySize", encodedBodySize()); | 323 builder.addNumber("encodedBodySize", encodedBodySize()); |
| 291 builder.addNumber("decodedBodySize", decodedBodySize()); | 324 builder.addNumber("decodedBodySize", decodedBodySize()); |
| 292 } | 325 } |
| 293 | 326 |
| 294 } // namespace blink | 327 } // namespace blink |
| OLD | NEW |