Index: third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
diff --git a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
index da7d65d99f6abaa313a92c605a8a13a52b99c444..5e38893ace0f7aa61a8ab569a5c1e0ee8dbb199b 100644 |
--- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
+++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp |
@@ -653,6 +653,10 @@ void ResourceFetcher::initializeResourceRequest( |
(type == Resource::MainResource) ? FetchMainResource : FetchSubresource); |
} |
+std::unique_ptr<ResourceTimingInfo> ResourceFetcher::getNavigationTimingInfo() { |
+ return std::move(m_navigationTimingInfo); |
+} |
+ |
void ResourceFetcher::initializeRevalidation( |
ResourceRequest& revalidatingRequest, |
Resource* resource) { |
@@ -742,6 +746,7 @@ void ResourceFetcher::storePerformanceTimingInitiatorInformation( |
DCHECK(!m_navigationTimingInfo); |
m_navigationTimingInfo = |
ResourceTimingInfo::create(fetchInitiator, startTime, isMainResource); |
+ m_navigationTimingInfoRef = m_navigationTimingInfo.get(); |
} |
std::unique_ptr<ResourceTimingInfo> info = |
@@ -770,8 +775,8 @@ void ResourceFetcher::recordResourceTimingOnRedirect( |
} |
if (resource->getType() == Resource::MainResource) { |
- DCHECK(m_navigationTimingInfo); |
- m_navigationTimingInfo->addRedirect(redirectResponse, crossOrigin); |
+ DCHECK(m_navigationTimingInfoRef); |
+ m_navigationTimingInfoRef->addRedirect(redirectResponse, crossOrigin); |
} |
} |
@@ -1114,10 +1119,6 @@ ArchiveResource* ResourceFetcher::createArchive(Resource* resource) { |
return m_archive ? m_archive->mainResource() : nullptr; |
} |
-ResourceTimingInfo* ResourceFetcher::getNavigationTimingInfo() { |
- return m_navigationTimingInfo.get(); |
-} |
- |
void ResourceFetcher::handleLoadCompletion(Resource* resource) { |
context().didLoadResource(resource); |
@@ -1143,12 +1144,12 @@ void ResourceFetcher::handleLoaderFinish(Resource* resource, |
const int64_t encodedDataLength = resource->response().encodedDataLength(); |
if (resource->getType() == Resource::MainResource) { |
- DCHECK(m_navigationTimingInfo); |
+ DCHECK(m_navigationTimingInfoRef); |
// Store redirect responses that were packed inside the final response. |
- addRedirectsToTimingInfo(resource, m_navigationTimingInfo.get()); |
+ addRedirectsToTimingInfo(resource, m_navigationTimingInfoRef); |
if (resource->response().isHTTP()) { |
- populateTimingInfo(m_navigationTimingInfo.get(), resource); |
- m_navigationTimingInfo->addFinalTransferSize( |
+ populateTimingInfo(m_navigationTimingInfoRef, resource); |
+ m_navigationTimingInfoRef->addFinalTransferSize( |
encodedDataLength == -1 ? 0 : encodedDataLength); |
} |
} |