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

Unified Diff: Source/core/fetch/ResourceFetcher.cpp

Issue 1186303002: Make ResourceTimingInfo non-refcounted (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 6 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
« no previous file with comments | « Source/core/fetch/ResourceFetcher.h ('k') | Source/core/loader/FrameFetchContext.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « Source/core/fetch/ResourceFetcher.h ('k') | Source/core/loader/FrameFetchContext.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698