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 27 matching lines...) Expand all Loading... | |
| 38 #include "platform/loader/fetch/ResourceTimingInfo.h" | 38 #include "platform/loader/fetch/ResourceTimingInfo.h" |
| 39 | 39 |
| 40 namespace blink { | 40 namespace blink { |
| 41 | 41 |
| 42 PerformanceResourceTiming::PerformanceResourceTiming( | 42 PerformanceResourceTiming::PerformanceResourceTiming( |
| 43 const ResourceTimingInfo& info, | 43 const ResourceTimingInfo& info, |
| 44 double time_origin, | 44 double time_origin, |
| 45 double start_time, | 45 double start_time, |
| 46 double last_redirect_end_time, | 46 double last_redirect_end_time, |
| 47 bool allow_timing_details, | 47 bool allow_timing_details, |
| 48 bool allow_redirect_details) | 48 bool allow_redirect_details, |
| 49 PerformanceServerTimingVector& serverTiming) | |
| 49 : PerformanceEntry(info.InitialURL().GetString(), | 50 : PerformanceEntry(info.InitialURL().GetString(), |
| 50 "resource", | 51 "resource", |
| 51 PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( | 52 PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
| 52 time_origin, | 53 time_origin, |
| 53 start_time, | 54 start_time, |
| 54 info.NegativeAllowed()), | 55 info.NegativeAllowed()), |
| 55 PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( | 56 PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
| 56 time_origin, | 57 time_origin, |
| 57 info.LoadFinishTime(), | 58 info.LoadFinishTime(), |
| 58 info.NegativeAllowed())), | 59 info.NegativeAllowed())), |
| 59 initiator_type_(info.InitiatorType()), | 60 initiator_type_(info.InitiatorType()), |
| 60 time_origin_(time_origin), | 61 time_origin_(time_origin), |
| 61 timing_(info.FinalResponse().GetResourceLoadTiming()), | 62 timing_(info.FinalResponse().GetResourceLoadTiming()), |
| 62 last_redirect_end_time_(last_redirect_end_time), | 63 last_redirect_end_time_(last_redirect_end_time), |
| 63 finish_time_(info.LoadFinishTime()), | 64 finish_time_(info.LoadFinishTime()), |
| 64 transfer_size_(info.TransferSize()), | 65 transfer_size_(info.TransferSize()), |
| 65 encoded_body_size_(info.FinalResponse().EncodedBodyLength()), | 66 encoded_body_size_(info.FinalResponse().EncodedBodyLength()), |
| 66 decoded_body_size_(info.FinalResponse().DecodedBodyLength()), | 67 decoded_body_size_(info.FinalResponse().DecodedBodyLength()), |
| 67 did_reuse_connection_(info.FinalResponse().ConnectionReused()), | 68 did_reuse_connection_(info.FinalResponse().ConnectionReused()), |
| 68 allow_timing_details_(allow_timing_details), | 69 allow_timing_details_(allow_timing_details), |
| 69 allow_redirect_details_(allow_redirect_details), | 70 allow_redirect_details_(allow_redirect_details), |
| 70 allow_negative_value_(info.NegativeAllowed()) {} | 71 allow_negative_value_(info.NegativeAllowed()) { |
| 72 serverTiming_.AppendVector(serverTiming); | |
|
Yoav Weiss
2017/06/29 06:57:33
Why AppendVector? serverTiming_ is empty here. I t
| |
| 73 } | |
| 71 | 74 |
| 72 // This constructor is for PerformanceNavigationTiming. | 75 // This constructor is for PerformanceNavigationTiming. |
| 73 PerformanceResourceTiming::PerformanceResourceTiming(const String& name, | 76 PerformanceResourceTiming::PerformanceResourceTiming( |
| 74 const String& entry_type, | 77 const String& name, |
| 75 double start_time, | 78 const String& entry_type, |
| 76 double duration) | 79 double start_time, |
| 77 : PerformanceEntry(name, entry_type, start_time, duration) {} | 80 double duration, |
| 81 PerformanceServerTimingVector& serverTiming) | |
| 82 : PerformanceEntry(name, entry_type, start_time, duration) { | |
| 83 serverTiming_.AppendVector(serverTiming); | |
| 84 } | |
| 78 | 85 |
| 79 PerformanceResourceTiming::~PerformanceResourceTiming() {} | 86 PerformanceResourceTiming::~PerformanceResourceTiming() {} |
| 80 | 87 |
| 81 ResourceLoadTiming* PerformanceResourceTiming::GetResourceLoadTiming() const { | 88 ResourceLoadTiming* PerformanceResourceTiming::GetResourceLoadTiming() const { |
| 82 return timing_.Get(); | 89 return timing_.Get(); |
| 83 } | 90 } |
| 84 | 91 |
| 85 bool PerformanceResourceTiming::AllowTimingDetails() const { | 92 bool PerformanceResourceTiming::AllowTimingDetails() const { |
| 86 return allow_timing_details_; | 93 return allow_timing_details_; |
| 87 } | 94 } |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 267 return GetEncodedBodySize(); | 274 return GetEncodedBodySize(); |
| 268 } | 275 } |
| 269 | 276 |
| 270 unsigned long long PerformanceResourceTiming::decodedBodySize() const { | 277 unsigned long long PerformanceResourceTiming::decodedBodySize() const { |
| 271 if (!AllowTimingDetails()) | 278 if (!AllowTimingDetails()) |
| 272 return 0; | 279 return 0; |
| 273 | 280 |
| 274 return GetDecodedBodySize(); | 281 return GetDecodedBodySize(); |
| 275 } | 282 } |
| 276 | 283 |
| 284 PerformanceServerTimingVector PerformanceResourceTiming::serverTiming() const { | |
| 285 return serverTiming_; | |
| 286 } | |
| 287 | |
| 277 void PerformanceResourceTiming::BuildJSONValue(V8ObjectBuilder& builder) const { | 288 void PerformanceResourceTiming::BuildJSONValue(V8ObjectBuilder& builder) const { |
| 278 PerformanceEntry::BuildJSONValue(builder); | 289 PerformanceEntry::BuildJSONValue(builder); |
| 279 builder.AddString("initiatorType", initiatorType()); | 290 builder.AddString("initiatorType", initiatorType()); |
| 280 builder.AddNumber("workerStart", workerStart()); | 291 builder.AddNumber("workerStart", workerStart()); |
| 281 builder.AddNumber("redirectStart", redirectStart()); | 292 builder.AddNumber("redirectStart", redirectStart()); |
| 282 builder.AddNumber("redirectEnd", redirectEnd()); | 293 builder.AddNumber("redirectEnd", redirectEnd()); |
| 283 builder.AddNumber("fetchStart", fetchStart()); | 294 builder.AddNumber("fetchStart", fetchStart()); |
| 284 builder.AddNumber("domainLookupStart", domainLookupStart()); | 295 builder.AddNumber("domainLookupStart", domainLookupStart()); |
| 285 builder.AddNumber("domainLookupEnd", domainLookupEnd()); | 296 builder.AddNumber("domainLookupEnd", domainLookupEnd()); |
| 286 builder.AddNumber("connectStart", connectStart()); | 297 builder.AddNumber("connectStart", connectStart()); |
| 287 builder.AddNumber("connectEnd", connectEnd()); | 298 builder.AddNumber("connectEnd", connectEnd()); |
| 288 builder.AddNumber("secureConnectionStart", secureConnectionStart()); | 299 builder.AddNumber("secureConnectionStart", secureConnectionStart()); |
| 289 builder.AddNumber("requestStart", requestStart()); | 300 builder.AddNumber("requestStart", requestStart()); |
| 290 builder.AddNumber("responseStart", responseStart()); | 301 builder.AddNumber("responseStart", responseStart()); |
| 291 builder.AddNumber("responseEnd", responseEnd()); | 302 builder.AddNumber("responseEnd", responseEnd()); |
| 292 builder.AddNumber("transferSize", transferSize()); | 303 builder.AddNumber("transferSize", transferSize()); |
| 293 builder.AddNumber("encodedBodySize", encodedBodySize()); | 304 builder.AddNumber("encodedBodySize", encodedBodySize()); |
| 294 builder.AddNumber("decodedBodySize", decodedBodySize()); | 305 builder.AddNumber("decodedBodySize", decodedBodySize()); |
| 295 } | 306 } |
| 296 | 307 |
| 308 DEFINE_TRACE(PerformanceResourceTiming) { | |
| 309 visitor->Trace(serverTiming_); | |
| 310 PerformanceEntry::Trace(visitor); | |
| 311 } | |
| 312 | |
| 297 } // namespace blink | 313 } // namespace blink |
| OLD | NEW |