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

Side by Side Diff: Source/core/fetch/ResourceFetcher.cpp

Issue 561813003: Prepare blink to unify definitions of load completion (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 3 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de)
3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) 3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org)
4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org)
5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved.
6 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ 6 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/
7 7
8 This library is free software; you can redistribute it and/or 8 This library is free software; you can redistribute it and/or
9 modify it under the terms of the GNU Library General Public 9 modify it under the terms of the GNU Library General Public
10 License as published by the Free Software Foundation; either 10 License as published by the Free Software Foundation; either
(...skipping 1083 matching lines...) Expand 10 before | Expand all | Expand 10 after
1094 ResourceTimingInfoMap::iterator it = m_resourceTimingInfoMap.find(resource); 1094 ResourceTimingInfoMap::iterator it = m_resourceTimingInfoMap.find(resource);
1095 if (it != m_resourceTimingInfoMap.end()) 1095 if (it != m_resourceTimingInfoMap.end())
1096 it->value->addRedirect(redirectResponse); 1096 it->value->addRedirect(redirectResponse);
1097 } 1097 }
1098 1098
1099 void ResourceFetcher::didLoadResource(Resource* resource) 1099 void ResourceFetcher::didLoadResource(Resource* resource)
1100 { 1100 {
1101 RefPtr<DocumentLoader> protectDocumentLoader(m_documentLoader); 1101 RefPtr<DocumentLoader> protectDocumentLoader(m_documentLoader);
1102 RefPtrWillBeRawPtr<Document> protectDocument(m_document.get()); 1102 RefPtrWillBeRawPtr<Document> protectDocument(m_document.get());
1103 1103
1104 if (resource && resource->response().isHTTP() && ((!resource->errorOccurred( ) && !resource->wasCanceled()) || resource->response().httpStatusCode() == 304) && document()) {
1105 ResourceTimingInfoMap::iterator it = m_resourceTimingInfoMap.find(resour ce);
1106 if (it != m_resourceTimingInfoMap.end()) {
1107 RefPtr<ResourceTimingInfo> info = it->value;
1108 m_resourceTimingInfoMap.remove(it);
1109 populateResourceTiming(info.get(), resource, false);
1110 reportResourceTiming(info.get(), document(), resource->type() == Res ource::MainResource);
1111 }
1112 }
1113
1114 if (frame()) 1104 if (frame())
1115 frame()->loader().loadDone(); 1105 frame()->loader().loadDone();
1116 scheduleDocumentResourcesGC(); 1106 scheduleDocumentResourcesGC();
1117 } 1107 }
1118 1108
1119 void ResourceFetcher::scheduleDocumentResourcesGC() 1109 void ResourceFetcher::scheduleDocumentResourcesGC()
1120 { 1110 {
1121 if (!m_garbageCollectDocumentResourcesTimer.isActive()) 1111 if (!m_garbageCollectDocumentResourcesTimer.isActive())
1122 m_garbageCollectDocumentResourcesTimer.startOneShot(0, FROM_HERE); 1112 m_garbageCollectDocumentResourcesTimer.startOneShot(0, FROM_HERE);
1123 } 1113 }
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1245 for (ListHashSet<Resource*>::iterator it = m_preloads->begin(); it != end; + +it) { 1235 for (ListHashSet<Resource*>::iterator it = m_preloads->begin(); it != end; + +it) {
1246 Resource* res = *it; 1236 Resource* res = *it;
1247 res->decreasePreloadCount(); 1237 res->decreasePreloadCount();
1248 bool deleted = res->deleteIfPossible(); 1238 bool deleted = res->deleteIfPossible();
1249 if (!deleted && res->preloadResult() == Resource::PreloadNotReferenced) 1239 if (!deleted && res->preloadResult() == Resource::PreloadNotReferenced)
1250 memoryCache()->remove(res); 1240 memoryCache()->remove(res);
1251 } 1241 }
1252 m_preloads.clear(); 1242 m_preloads.clear();
1253 } 1243 }
1254 1244
1255 void ResourceFetcher::didFinishLoading(const Resource* resource, double finishTi me, int64_t encodedDataLength) 1245 void ResourceFetcher::didFinishLoading(Resource* resource, double finishTime, in t64_t encodedDataLength)
1256 { 1246 {
1257 TRACE_EVENT_ASYNC_END0("net", "Resource", resource); 1247 TRACE_EVENT_ASYNC_END0("net", "Resource", resource);
1248
1249 if (resource && resource->response().isHTTP() && resource->response().httpSt atusCode() < 400 && document()) {
Nate Chapin 2014/09/15 23:39:35 dispatchDidFinishLoading might end a test, so ensu
1250 ResourceTimingInfoMap::iterator it = m_resourceTimingInfoMap.find(resour ce);
1251 if (it != m_resourceTimingInfoMap.end()) {
1252 RefPtr<ResourceTimingInfo> info = it->value;
1253 m_resourceTimingInfoMap.remove(it);
1254 populateResourceTiming(info.get(), resource, false);
1255 reportResourceTiming(info.get(), document(), resource->type() == Res ource::MainResource);
1256 }
1257 }
1258 context().dispatchDidFinishLoading(m_documentLoader, resource->identifier(), finishTime, encodedDataLength); 1258 context().dispatchDidFinishLoading(m_documentLoader, resource->identifier(), finishTime, encodedDataLength);
1259 } 1259 }
1260 1260
1261 void ResourceFetcher::didChangeLoadingPriority(const Resource* resource, Resourc eLoadPriority loadPriority, int intraPriorityValue) 1261 void ResourceFetcher::didChangeLoadingPriority(const Resource* resource, Resourc eLoadPriority loadPriority, int intraPriorityValue)
1262 { 1262 {
1263 TRACE_EVENT_ASYNC_STEP_INTO1("net", "Resource", resource, "ChangePriority", "priority", loadPriority); 1263 TRACE_EVENT_ASYNC_STEP_INTO1("net", "Resource", resource, "ChangePriority", "priority", loadPriority);
1264 context().dispatchDidChangeResourcePriority(resource->identifier(), loadPrio rity, intraPriorityValue); 1264 context().dispatchDidChangeResourcePriority(resource->identifier(), loadPrio rity, intraPriorityValue);
1265 } 1265 }
1266 1266
1267 void ResourceFetcher::didFailLoading(const Resource* resource, const ResourceErr or& error) 1267 void ResourceFetcher::didFailLoading(const Resource* resource, const ResourceErr or& error)
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
1496 1496
1497 void ResourceFetcher::trace(Visitor* visitor) 1497 void ResourceFetcher::trace(Visitor* visitor)
1498 { 1498 {
1499 visitor->trace(m_document); 1499 visitor->trace(m_document);
1500 visitor->trace(m_loaders); 1500 visitor->trace(m_loaders);
1501 visitor->trace(m_multipartLoaders); 1501 visitor->trace(m_multipartLoaders);
1502 ResourceLoaderHost::trace(visitor); 1502 ResourceLoaderHost::trace(visitor);
1503 } 1503 }
1504 1504
1505 } 1505 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698