Index: third_party/WebKit/Source/core/timing/PerformanceResourceTiming.cpp |
diff --git a/third_party/WebKit/Source/core/timing/PerformanceResourceTiming.cpp b/third_party/WebKit/Source/core/timing/PerformanceResourceTiming.cpp |
index 8852a840d83e0efa62b378e07bc420c9f2cf9b28..48678a8993855bdb47ea6837809bb3b98a80c850 100644 |
--- a/third_party/WebKit/Source/core/timing/PerformanceResourceTiming.cpp |
+++ b/third_party/WebKit/Source/core/timing/PerformanceResourceTiming.cpp |
@@ -46,14 +46,16 @@ PerformanceResourceTiming::PerformanceResourceTiming( |
double last_redirect_end_time, |
bool allow_timing_details, |
bool allow_redirect_details) |
- : PerformanceEntry( |
- info.InitialURL().GetString(), |
- "resource", |
- PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(time_origin, |
- start_time), |
- PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
- time_origin, |
- info.LoadFinishTime())), |
+ : PerformanceEntry(info.InitialURL().GetString(), |
+ "resource", |
+ PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
+ time_origin, |
+ start_time, |
+ info.NegativeAllowed()), |
+ PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
+ time_origin, |
+ info.LoadFinishTime(), |
+ info.NegativeAllowed())), |
initiator_type_(info.InitiatorType()), |
time_origin_(time_origin), |
timing_(info.FinalResponse().GetResourceLoadTiming()), |
@@ -64,7 +66,8 @@ PerformanceResourceTiming::PerformanceResourceTiming( |
decoded_body_size_(info.FinalResponse().DecodedBodyLength()), |
did_reuse_connection_(info.FinalResponse().ConnectionReused()), |
allow_timing_details_(allow_timing_details), |
- allow_redirect_details_(allow_redirect_details) {} |
+ allow_redirect_details_(allow_redirect_details), |
+ allow_negative_value_(info.NegativeAllowed()) {} |
// This constructor is for PerformanceNavigationTiming. |
PerformanceResourceTiming::PerformanceResourceTiming(const String& name, |
@@ -109,7 +112,7 @@ DOMHighResTimeStamp PerformanceResourceTiming::workerStart() const { |
return 0.0; |
return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
- time_origin_, timing->WorkerStart()); |
+ time_origin_, timing->WorkerStart(), allow_negative_value_); |
} |
DOMHighResTimeStamp PerformanceResourceTiming::WorkerReady() const { |
@@ -118,7 +121,7 @@ DOMHighResTimeStamp PerformanceResourceTiming::WorkerReady() const { |
return 0.0; |
return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
- time_origin_, timing->WorkerReady()); |
+ time_origin_, timing->WorkerReady(), allow_negative_value_); |
} |
DOMHighResTimeStamp PerformanceResourceTiming::redirectStart() const { |
@@ -136,7 +139,7 @@ DOMHighResTimeStamp PerformanceResourceTiming::redirectEnd() const { |
return 0.0; |
return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
- time_origin_, last_redirect_end_time_); |
+ time_origin_, last_redirect_end_time_, allow_negative_value_); |
} |
DOMHighResTimeStamp PerformanceResourceTiming::fetchStart() const { |
@@ -146,7 +149,7 @@ DOMHighResTimeStamp PerformanceResourceTiming::fetchStart() const { |
if (last_redirect_end_time_) { |
return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
- time_origin_, timing->RequestTime()); |
+ time_origin_, timing->RequestTime(), allow_negative_value_); |
} |
if (DOMHighResTimeStamp worker_ready_time = WorkerReady()) |
@@ -163,7 +166,7 @@ DOMHighResTimeStamp PerformanceResourceTiming::domainLookupStart() const { |
return fetchStart(); |
return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
- time_origin_, timing->DnsStart()); |
+ time_origin_, timing->DnsStart(), allow_negative_value_); |
} |
DOMHighResTimeStamp PerformanceResourceTiming::domainLookupEnd() const { |
@@ -173,8 +176,8 @@ DOMHighResTimeStamp PerformanceResourceTiming::domainLookupEnd() const { |
if (!timing || timing->DnsEnd() == 0.0) |
return domainLookupStart(); |
- return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(time_origin_, |
- timing->DnsEnd()); |
+ return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
+ time_origin_, timing->DnsEnd(), allow_negative_value_); |
} |
DOMHighResTimeStamp PerformanceResourceTiming::connectStart() const { |
@@ -190,8 +193,8 @@ DOMHighResTimeStamp PerformanceResourceTiming::connectStart() const { |
if (timing->DnsEnd() > 0.0) |
connect_start = timing->DnsEnd(); |
- return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(time_origin_, |
- connect_start); |
+ return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
+ time_origin_, connect_start, allow_negative_value_); |
} |
DOMHighResTimeStamp PerformanceResourceTiming::connectEnd() const { |
@@ -203,7 +206,7 @@ DOMHighResTimeStamp PerformanceResourceTiming::connectEnd() const { |
return connectStart(); |
return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
- time_origin_, timing->ConnectEnd()); |
+ time_origin_, timing->ConnectEnd(), allow_negative_value_); |
} |
DOMHighResTimeStamp PerformanceResourceTiming::secureConnectionStart() const { |
@@ -215,7 +218,7 @@ DOMHighResTimeStamp PerformanceResourceTiming::secureConnectionStart() const { |
return 0.0; |
return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
- time_origin_, timing->SslStart()); |
+ time_origin_, timing->SslStart(), allow_negative_value_); |
} |
DOMHighResTimeStamp PerformanceResourceTiming::requestStart() const { |
@@ -226,7 +229,7 @@ DOMHighResTimeStamp PerformanceResourceTiming::requestStart() const { |
return connectEnd(); |
return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
- time_origin_, timing->SendStart()); |
+ time_origin_, timing->SendStart(), allow_negative_value_); |
} |
DOMHighResTimeStamp PerformanceResourceTiming::responseStart() const { |
@@ -239,15 +242,15 @@ DOMHighResTimeStamp PerformanceResourceTiming::responseStart() const { |
// FIXME: This number isn't exactly correct. See the notes in |
// PerformanceTiming::responseStart(). |
return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
- time_origin_, timing->ReceiveHeadersEnd()); |
+ time_origin_, timing->ReceiveHeadersEnd(), allow_negative_value_); |
} |
DOMHighResTimeStamp PerformanceResourceTiming::responseEnd() const { |
if (!finish_time_) |
return responseStart(); |
- return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp(time_origin_, |
- finish_time_); |
+ return PerformanceBase::MonotonicTimeToDOMHighResTimeStamp( |
+ time_origin_, finish_time_, allow_negative_value_); |
} |
unsigned long long PerformanceResourceTiming::transferSize() const { |