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_nextHopProtocol(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::getNextHopProtocol( | |
| 109 const AtomicString& alpnNegotiatedProtocol, | |
| 110 const AtomicString& connectionInfo) { | |
| 111 // Fallback to connectionInfo when alpnNegotiatedProtocol is unknowm. | |
| 112 AtomicString returnedProtocol = alpnNegotiatedProtocol == "unknown" | |
| 113 ? connectionInfo | |
| 114 : alpnNegotiatedProtocol; | |
| 115 // Fallback to "http/1.1" when connectionInfo is also unknown. | |
| 116 returnedProtocol = | |
| 117 returnedProtocol == "unknown" ? "http/1.1" : returnedProtocol; | |
| 118 | |
| 119 if (returnedProtocol.contains("quic")) { | |
| 120 returnedProtocol = "hq"; | |
| 121 } | |
|
Ryan Hamilton
2017/04/05 20:31:11
Instead of doing the mapping from "... quic ... "
panicker
2017/04/05 21:48:27
Could we do this as a follow-up - if someone on ne
| |
| 122 return returnedProtocol; | |
| 123 } | |
| 124 | |
| 125 AtomicString PerformanceResourceTiming::nextHopProtocol() const { | |
| 126 return PerformanceResourceTiming::getNextHopProtocol(m_nextHopProtocol, | |
| 127 m_connectionInfo); | |
| 128 } | |
| 129 | |
| 106 DOMHighResTimeStamp PerformanceResourceTiming::workerStart() const { | 130 DOMHighResTimeStamp PerformanceResourceTiming::workerStart() const { |
| 107 ResourceLoadTiming* timing = resourceLoadTiming(); | 131 ResourceLoadTiming* timing = resourceLoadTiming(); |
| 108 if (!timing || timing->workerStart() == 0.0) | 132 if (!timing || timing->workerStart() == 0.0) |
| 109 return 0.0; | 133 return 0.0; |
| 110 | 134 |
| 111 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp( | 135 return PerformanceBase::monotonicTimeToDOMHighResTimeStamp( |
| 112 m_timeOrigin, timing->workerStart()); | 136 m_timeOrigin, timing->workerStart()); |
| 113 } | 137 } |
| 114 | 138 |
| 115 DOMHighResTimeStamp PerformanceResourceTiming::workerReady() const { | 139 DOMHighResTimeStamp PerformanceResourceTiming::workerReady() const { |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 267 unsigned long long PerformanceResourceTiming::decodedBodySize() const { | 291 unsigned long long PerformanceResourceTiming::decodedBodySize() const { |
| 268 if (!allowTimingDetails()) | 292 if (!allowTimingDetails()) |
| 269 return 0; | 293 return 0; |
| 270 | 294 |
| 271 return getDecodedBodySize(); | 295 return getDecodedBodySize(); |
| 272 } | 296 } |
| 273 | 297 |
| 274 void PerformanceResourceTiming::buildJSONValue(V8ObjectBuilder& builder) const { | 298 void PerformanceResourceTiming::buildJSONValue(V8ObjectBuilder& builder) const { |
| 275 PerformanceEntry::buildJSONValue(builder); | 299 PerformanceEntry::buildJSONValue(builder); |
| 276 builder.addString("initiatorType", initiatorType()); | 300 builder.addString("initiatorType", initiatorType()); |
| 301 builder.addString("nextHopProtocol", nextHopProtocol()); | |
| 277 builder.addNumber("workerStart", workerStart()); | 302 builder.addNumber("workerStart", workerStart()); |
| 278 builder.addNumber("redirectStart", redirectStart()); | 303 builder.addNumber("redirectStart", redirectStart()); |
| 279 builder.addNumber("redirectEnd", redirectEnd()); | 304 builder.addNumber("redirectEnd", redirectEnd()); |
| 280 builder.addNumber("fetchStart", fetchStart()); | 305 builder.addNumber("fetchStart", fetchStart()); |
| 281 builder.addNumber("domainLookupStart", domainLookupStart()); | 306 builder.addNumber("domainLookupStart", domainLookupStart()); |
| 282 builder.addNumber("domainLookupEnd", domainLookupEnd()); | 307 builder.addNumber("domainLookupEnd", domainLookupEnd()); |
| 283 builder.addNumber("connectStart", connectStart()); | 308 builder.addNumber("connectStart", connectStart()); |
| 284 builder.addNumber("connectEnd", connectEnd()); | 309 builder.addNumber("connectEnd", connectEnd()); |
| 285 builder.addNumber("secureConnectionStart", secureConnectionStart()); | 310 builder.addNumber("secureConnectionStart", secureConnectionStart()); |
| 286 builder.addNumber("requestStart", requestStart()); | 311 builder.addNumber("requestStart", requestStart()); |
| 287 builder.addNumber("responseStart", responseStart()); | 312 builder.addNumber("responseStart", responseStart()); |
| 288 builder.addNumber("responseEnd", responseEnd()); | 313 builder.addNumber("responseEnd", responseEnd()); |
| 289 builder.addNumber("transferSize", transferSize()); | 314 builder.addNumber("transferSize", transferSize()); |
| 290 builder.addNumber("encodedBodySize", encodedBodySize()); | 315 builder.addNumber("encodedBodySize", encodedBodySize()); |
| 291 builder.addNumber("decodedBodySize", decodedBodySize()); | 316 builder.addNumber("decodedBodySize", decodedBodySize()); |
| 292 } | 317 } |
| 293 | 318 |
| 294 } // namespace blink | 319 } // namespace blink |
| OLD | NEW |