| Index: Source/core/fetch/ResourceFetcher.cpp
|
| diff --git a/Source/core/fetch/ResourceFetcher.cpp b/Source/core/fetch/ResourceFetcher.cpp
|
| index b73d00bb0108bab15312312a89e8d62ccd563327..27f7aa1c4da11214ec03a1c2ae350bd25f784839 100644
|
| --- a/Source/core/fetch/ResourceFetcher.cpp
|
| +++ b/Source/core/fetch/ResourceFetcher.cpp
|
| @@ -237,9 +237,9 @@ void ResourceFetcher::requestLoadStarted(Resource* resource, const FetchRequest&
|
|
|
| if (type == ResourceLoadingFromCache && !resource->stillNeedsLoad() && !m_validatedURLs.contains(request.resourceRequest().url())) {
|
| // Resources loaded from memory cache should be reported the first time they're used.
|
| - RefPtr<ResourceTimingInfo> info = ResourceTimingInfo::create(request.options().initiatorInfo.name, monotonicallyIncreasingTime());
|
| + OwnPtr<ResourceTimingInfo> info = ResourceTimingInfo::create(request.options().initiatorInfo.name, monotonicallyIncreasingTime(), resource->type() == Resource::MainResource);
|
| populateResourceTiming(info.get(), resource, true);
|
| - m_scheduledResourceTimingReports.add(info, resource->type() == Resource::MainResource);
|
| + m_scheduledResourceTimingReports.append(info.release());
|
| if (!m_resourceTimingReportTimer.isActive())
|
| m_resourceTimingReportTimer.startOneShot(0, FROM_HERE);
|
| }
|
| @@ -379,10 +379,10 @@ ResourcePtr<Resource> ResourceFetcher::requestResource(FetchRequest& request, co
|
| void ResourceFetcher::resourceTimingReportTimerFired(Timer<ResourceFetcher>* timer)
|
| {
|
| ASSERT_UNUSED(timer, timer == &m_resourceTimingReportTimer);
|
| - HashMap<RefPtr<ResourceTimingInfo>, bool> timingReports;
|
| + Vector<OwnPtr<ResourceTimingInfo>> timingReports;
|
| timingReports.swap(m_scheduledResourceTimingReports);
|
| for (const auto& timingInfo : timingReports)
|
| - context().addResourceTiming(timingInfo.key.get(), timingInfo.value);
|
| + context().addResourceTiming(*timingInfo);
|
| }
|
|
|
| void ResourceFetcher::determineRequestContext(ResourceRequest& request, Resource::Type type)
|
| @@ -466,7 +466,7 @@ void ResourceFetcher::storeResourceTimingInitiatorInformation(Resource* resource
|
| if (resource->options().initiatorInfo.name == FetchInitiatorTypeNames::internal)
|
| return;
|
|
|
| - RefPtr<ResourceTimingInfo> info = ResourceTimingInfo::create(resource->options().initiatorInfo.name, monotonicallyIncreasingTime());
|
| + OwnPtr<ResourceTimingInfo> info = ResourceTimingInfo::create(resource->options().initiatorInfo.name, monotonicallyIncreasingTime(), resource->type() == Resource::MainResource);
|
|
|
| if (resource->isCacheValidator()) {
|
| const AtomicString& timingAllowOrigin = resource->resourceToRevalidate()->response().httpHeaderField("Timing-Allow-Origin");
|
| @@ -475,7 +475,7 @@ void ResourceFetcher::storeResourceTimingInitiatorInformation(Resource* resource
|
| }
|
|
|
| if (resource->type() != Resource::MainResource || context().updateTimingInfoForIFrameNavigation(info.get()))
|
| - m_resourceTimingInfoMap.add(resource, info);
|
| + m_resourceTimingInfoMap.add(resource, info.release());
|
| }
|
|
|
| ResourceFetcher::RevalidationPolicy ResourceFetcher::determineRevalidationPolicy(Resource::Type type, const FetchRequest& fetchRequest, Resource* existingResource) const
|
| @@ -802,10 +802,10 @@ void ResourceFetcher::didFinishLoading(Resource* resource, double finishTime, in
|
| if (resource && resource->response().isHTTP() && resource->response().httpStatusCode() < 400) {
|
| ResourceTimingInfoMap::iterator it = m_resourceTimingInfoMap.find(resource);
|
| if (it != m_resourceTimingInfoMap.end()) {
|
| - RefPtr<ResourceTimingInfo> info = it->value;
|
| + OwnPtr<ResourceTimingInfo> info = it->value.release();
|
| m_resourceTimingInfoMap.remove(it);
|
| populateResourceTiming(info.get(), resource, false);
|
| - context().addResourceTiming(info.get(), resource->type() == Resource::MainResource);
|
| + context().addResourceTiming(*info);
|
| }
|
| }
|
| context().dispatchDidFinishLoading(resource->identifier(), finishTime, encodedDataLength);
|
|
|