| 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 386b8070007675d1ad5cb0948d882a102099c3fa..4448723c6e7403d185a6aa83d9b9f5d75cf2d412 100644
|
| --- a/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
|
| +++ b/third_party/WebKit/Source/platform/loader/fetch/ResourceFetcher.cpp
|
| @@ -312,13 +312,13 @@ void ResourceFetcher::requestLoadStarted(unsigned long identifier,
|
| !m_validatedURLs.contains(request.resourceRequest().url())) {
|
| // Resources loaded from memory cache should be reported the first time
|
| // they're used.
|
| - std::unique_ptr<ResourceTimingInfo> info = ResourceTimingInfo::create(
|
| + RefPtr<ResourceTimingInfo> info = ResourceTimingInfo::create(
|
| request.options().initiatorInfo.name, monotonicallyIncreasingTime(),
|
| resource->getType() == Resource::MainResource);
|
| populateTimingInfo(info.get(), resource);
|
| info->clearLoadTimings();
|
| info->setLoadFinishTime(info->initialTime());
|
| - m_scheduledResourceTimingReports.push_back(std::move(info));
|
| + m_scheduledResourceTimingReports.push_back(info.release());
|
| if (!m_resourceTimingReportTimer.isActive())
|
| m_resourceTimingReportTimer.startOneShot(0, BLINK_FROM_HERE);
|
| }
|
| @@ -631,7 +631,7 @@ Resource* ResourceFetcher::requestResource(
|
|
|
| void ResourceFetcher::resourceTimingReportTimerFired(TimerBase* timer) {
|
| DCHECK_EQ(timer, &m_resourceTimingReportTimer);
|
| - Vector<std::unique_ptr<ResourceTimingInfo>> timingReports;
|
| + Vector<RefPtr<ResourceTimingInfo>> timingReports;
|
| timingReports.swap(m_scheduledResourceTimingReports);
|
| for (const auto& timingInfo : timingReports)
|
| context().addResourceTiming(*timingInfo);
|
| @@ -668,6 +668,10 @@ void ResourceFetcher::initializeResourceRequest(
|
| (type == Resource::MainResource) ? FetchMainResource : FetchSubresource);
|
| }
|
|
|
| +ResourceTimingInfo* ResourceFetcher::getNavigationTimingInfo() {
|
| + return m_navigationTimingInfo.get();
|
| +}
|
| +
|
| void ResourceFetcher::initializeRevalidation(
|
| ResourceRequest& revalidatingRequest,
|
| Resource* resource) {
|
| @@ -759,7 +763,7 @@ void ResourceFetcher::storePerformanceTimingInitiatorInformation(
|
| ResourceTimingInfo::create(fetchInitiator, startTime, isMainResource);
|
| }
|
|
|
| - std::unique_ptr<ResourceTimingInfo> info =
|
| + RefPtr<ResourceTimingInfo> info =
|
| ResourceTimingInfo::create(fetchInitiator, startTime, isMainResource);
|
|
|
| if (resource->isCacheValidator()) {
|
| @@ -1128,10 +1132,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);
|
|
|
| @@ -1166,7 +1166,7 @@ void ResourceFetcher::handleLoaderFinish(Resource* resource,
|
| encodedDataLength == -1 ? 0 : encodedDataLength);
|
| }
|
| }
|
| - if (std::unique_ptr<ResourceTimingInfo> info =
|
| + if (RefPtr<ResourceTimingInfo> info =
|
| m_resourceTimingInfoMap.take(resource)) {
|
| // Store redirect responses that were packed inside the final response.
|
| addRedirectsToTimingInfo(resource, info.get());
|
|
|