Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(159)

Unified Diff: third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp

Issue 2647643004: Report nav timing 2 instance as soon as it's requested. (Closed)
Patch Set: make a copy of navigationTimingInfo for ResourceFetcher Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}
}

Powered by Google App Engine
This is Rietveld 408576698