Index: third_party/WebKit/Source/core/timing/PerformanceBase.cpp |
diff --git a/third_party/WebKit/Source/core/timing/PerformanceBase.cpp b/third_party/WebKit/Source/core/timing/PerformanceBase.cpp |
index 39a7e3029048b737b9dd46be61be55e16c9c23ef..567dc5f0f7e663df51efc624d9c2de05bd277054 100644 |
--- a/third_party/WebKit/Source/core/timing/PerformanceBase.cpp |
+++ b/third_party/WebKit/Source/core/timing/PerformanceBase.cpp |
@@ -336,12 +336,15 @@ void PerformanceBase::addNavigationTiming(LocalFrame* frame) { |
DCHECK(frame); |
const DocumentLoader* documentLoader = frame->loader().documentLoader(); |
DCHECK(documentLoader); |
+ |
const DocumentLoadTiming& documentLoadTiming = documentLoader->timing(); |
const DocumentTiming* documentTiming = |
frame->document() ? &(frame->document()->timing()) : nullptr; |
const ResourceResponse& finalResponse = documentLoader->response(); |
+ ResourceTimingInfo* resourceTimingInfo = |
+ documentLoader->getMainResourceTimingInfo(); |
ResourceLoadTiming* resourceLoadTiming = finalResponse.resourceLoadTiming(); |
// Don't create a navigation timing instance when |
@@ -352,8 +355,8 @@ void PerformanceBase::addNavigationTiming(LocalFrame* frame) { |
double lastRedirectEndTime = documentLoadTiming.redirectEnd(); |
double finishTime = documentLoadTiming.loadEventEnd(); |
- // TODO(sunjian) Implement transfer size. crbug/663187 |
- unsigned long long transferSize = 0; |
+ unsigned long long transferSize = |
+ resourceTimingInfo ? resourceTimingInfo->transferSize() : 0; |
unsigned long long encodedBodyLength = finalResponse.encodedBodyLength(); |
unsigned long long decodedBodyLength = finalResponse.decodedBodyLength(); |
bool didReuseConnection = finalResponse.connectionReused(); |