Use C++11 range-based loop in core/fetch

Improves code readabilty

BUG=none
TEST=no layout test failures

Review URL: https://codereview.chromium.org/645513003

git-svn-id: svn://svn.chromium.org/blink/trunk@183923 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent e736426a
......@@ -107,11 +107,10 @@ bool FetchUtils::isSimpleRequest(const String& method, const HTTPHeaderMap& head
if (!isSimpleMethod(method))
return false;
HTTPHeaderMap::const_iterator end = headerMap.end();
for (HTTPHeaderMap::const_iterator it = headerMap.begin(); it != end; ++it) {
for (const auto& header : headerMap) {
// Preflight is required for MIME types that can not be sent via form
// submission.
if (!isSimpleHeader(it->key, it->value))
if (!isSimpleHeader(header.key, header.value))
return false;
}
......@@ -157,9 +156,8 @@ bool FetchUtils::isSimpleOrForbiddenRequest(const String& method, const HTTPHead
if (!isSimpleMethod(method))
return false;
HTTPHeaderMap::const_iterator end = headerMap.end();
for (HTTPHeaderMap::const_iterator it = headerMap.begin(); it != end; ++it) {
if (!isSimpleHeader(it->key, it->value) && !isForbiddenHeaderName(it->key))
for (const auto& header : headerMap) {
if (!isSimpleHeader(header.key, header.value) && !isForbiddenHeaderName(header.key))
return false;
}
......
......@@ -122,12 +122,12 @@ void ImageResource::switchClientsToRevalidatedResource()
if (!m_pendingContainerSizeRequests.isEmpty()) {
// A copy of pending size requests is needed as they are deleted during Resource::switchClientsToRevalidateResouce().
ContainerSizeRequests switchContainerSizeRequests;
for (ContainerSizeRequests::iterator it = m_pendingContainerSizeRequests.begin(); it != m_pendingContainerSizeRequests.end(); ++it)
switchContainerSizeRequests.set(it->key, it->value);
for (const auto& containerSizeRequest : m_pendingContainerSizeRequests)
switchContainerSizeRequests.set(containerSizeRequest.key, containerSizeRequest.value);
Resource::switchClientsToRevalidatedResource();
ImageResource* revalidatedImageResource = toImageResource(resourceToRevalidate());
for (ContainerSizeRequests::iterator it = switchContainerSizeRequests.begin(); it != switchContainerSizeRequests.end(); ++it)
revalidatedImageResource->setContainerSizeForRenderer(it->key, it->value.first, it->value.second);
for (const auto& containerSizeRequest : switchContainerSizeRequests)
revalidatedImageResource->setContainerSizeForRenderer(containerSizeRequest.key, containerSizeRequest.value.first, containerSizeRequest.value.second);
return;
}
......@@ -329,8 +329,8 @@ inline void ImageResource::createImage()
if (m_image) {
// Send queued container size requests.
if (m_image->usesContainerSize()) {
for (ContainerSizeRequests::iterator it = m_pendingContainerSizeRequests.begin(); it != m_pendingContainerSizeRequests.end(); ++it)
setContainerSizeForRenderer(it->key, it->value.first, it->value.second);
for (const auto& containerSizeRequest : m_pendingContainerSizeRequests)
setContainerSizeForRenderer(containerSizeRequest.key, containerSizeRequest.value.first, containerSizeRequest.value.second);
}
m_pendingContainerSizeRequests.clear();
}
......@@ -387,8 +387,7 @@ void ImageResource::updateImage(bool allDataReceived)
void ImageResource::updateBitmapImages(HashSet<ImageResource*>& images, bool redecodeImages)
{
for (HashSet<ImageResource*>::iterator it = images.begin(); it != images.end(); ++it) {
ImageResource* imageResource = *it;
for (const auto& imageResource : images) {
if (!imageResource->hasImage() || imageResource->image()->isNull())
continue;
BitmapImage* image = toBitmapImage(imageResource->image());
......
......@@ -62,11 +62,8 @@ PassOwnPtrWillBeRawPtr<MemoryCache> replaceMemoryCacheForTesting(PassOwnPtrWillB
{
#if ENABLE(OILPAN)
// Move m_liveResources content to keep Resource objects alive.
for (HeapHashSet<Member<Resource> >::iterator i = memoryCache()->m_liveResources.begin();
i != memoryCache()->m_liveResources.end();
++i) {
cache->m_liveResources.add(*i);
}
for (const auto& resource : memoryCache()->m_liveResources)
cache->m_liveResources.add(resource);
memoryCache()->m_liveResources.clear();
#else
// Make sure we have non-empty gMemoryCache.
......@@ -616,9 +613,8 @@ void MemoryCache::TypeStatistic::addResource(Resource* o)
MemoryCache::Statistics MemoryCache::getStatistics()
{
Statistics stats;
ResourceMap::iterator e = m_resources.end();
for (ResourceMap::iterator i = m_resources.begin(); i != e; ++i) {
Resource* resource = i->value->m_resource.get();
for (const auto& resourceIter : m_resources) {
Resource* resource = resourceIter.value->m_resource.get();
switch (resource->type()) {
case Resource::Image:
stats.images.addResource(resource);
......
......@@ -280,7 +280,7 @@ private:
// A URL-based map of all resources that are in the cache (including the freshest version of objects that are currently being
// referenced by a Web page).
typedef WillBeHeapHashMap<String, OwnPtrWillBeMember<MemoryCacheEntry> > ResourceMap;
typedef WillBeHeapHashMap<String, OwnPtrWillBeMember<MemoryCacheEntry>> ResourceMap;
ResourceMap m_resources;
#if ENABLE(OILPAN)
......@@ -288,7 +288,7 @@ private:
// should not be deleted. m_allResources only contains on-cache Resource
// objects.
// FIXME: Can we remove manual lifetime management of Resource and this?
HeapHashSet<Member<Resource> > m_liveResources;
HeapHashSet<Member<Resource>> m_liveResources;
friend RawPtr<MemoryCache> replaceMemoryCacheForTesting(RawPtr<MemoryCache>);
#endif
......
......@@ -57,15 +57,12 @@ void RawResource::didAddClient(ResourceClient* c)
// so a protector is necessary.
ResourcePtr<RawResource> protect(this);
RawResourceClient* client = static_cast<RawResourceClient*>(c);
size_t redirectCount = redirectChain().size();
for (size_t i = 0; i < redirectCount; i++) {
RedirectPair redirect = redirectChain()[i];
for (const auto& redirect : redirectChain()) {
ResourceRequest request(redirect.m_request);
client->redirectReceived(this, request, redirect.m_redirectResponse);
if (!hasClient(c))
return;
}
ASSERT(redirectCount == redirectChain().size());
if (!m_response.isNull())
client->responseReceived(this, m_response);
......@@ -173,17 +170,15 @@ bool RawResource::canReuse(const ResourceRequest& newRequest) const
const HTTPHeaderMap& newHeaders = newRequest.httpHeaderFields();
const HTTPHeaderMap& oldHeaders = m_resourceRequest.httpHeaderFields();
HTTPHeaderMap::const_iterator end = newHeaders.end();
for (HTTPHeaderMap::const_iterator i = newHeaders.begin(); i != end; ++i) {
AtomicString headerName = i->key;
if (!shouldIgnoreHeaderForCacheReuse(headerName) && i->value != oldHeaders.get(headerName))
for (const auto& header : newHeaders) {
AtomicString headerName = header.key;
if (!shouldIgnoreHeaderForCacheReuse(headerName) && header.value != oldHeaders.get(headerName))
return false;
}
end = oldHeaders.end();
for (HTTPHeaderMap::const_iterator i = oldHeaders.begin(); i != end; ++i) {
AtomicString headerName = i->key;
if (!shouldIgnoreHeaderForCacheReuse(headerName) && i->value != newHeaders.get(headerName))
for (const auto& header : oldHeaders) {
AtomicString headerName = header.key;
if (!shouldIgnoreHeaderForCacheReuse(headerName) && header.value != newHeaders.get(headerName))
return false;
}
......
......@@ -623,9 +623,7 @@ void Resource::finishPendingClients()
Vector<ResourceClient*> clientsToNotify;
copyToVector(m_clientsAwaitingCallback, clientsToNotify);
for (size_t i = 0; i < clientsToNotify.size(); ++i) {
ResourceClient* client = clientsToNotify[i];
for (const auto& client : clientsToNotify) {
// Handle case (2) to skip removed clients.
if (!m_clientsAwaitingCallback.remove(client))
continue;
......@@ -695,9 +693,7 @@ void Resource::switchClientsToRevalidatedResource()
m_resourceToRevalidate->m_identifier = m_identifier;
m_switchingClientsToRevalidatedResource = true;
HashSet<ResourcePtrBase*>::iterator end = m_handlesToRevalidate.end();
for (HashSet<ResourcePtrBase*>::iterator it = m_handlesToRevalidate.begin(); it != end; ++it) {
ResourcePtrBase* handle = *it;
for (const auto& handle : m_handlesToRevalidate) {
handle->m_resource = m_resourceToRevalidate;
m_resourceToRevalidate->registerHandle(handle);
--m_handleCount;
......@@ -706,12 +702,10 @@ void Resource::switchClientsToRevalidatedResource()
m_handlesToRevalidate.clear();
Vector<ResourceClient*> clientsToMove;
HashCountedSet<ResourceClient*>::iterator end2 = m_clients.end();
for (HashCountedSet<ResourceClient*>::iterator it = m_clients.begin(); it != end2; ++it) {
ResourceClient* client = it->key;
unsigned count = it->value;
for (const auto& clientHash : m_clients) {
unsigned count = clientHash.value;
while (count) {
clientsToMove.append(client);
clientsToMove.append(clientHash.key);
--count;
}
}
......@@ -741,16 +735,15 @@ void Resource::updateResponseAfterRevalidation(const ResourceResponse& validatin
// RFC2616 10.3.5
// Update cached headers from the 304 response
const HTTPHeaderMap& newHeaders = validatingResponse.httpHeaderFields();
HTTPHeaderMap::const_iterator end = newHeaders.end();
for (HTTPHeaderMap::const_iterator it = newHeaders.begin(); it != end; ++it) {
for (const auto& header : newHeaders) {
// Entity headers should not be sent by servers when generating a 304
// response; misconfigured servers send them anyway. We shouldn't allow
// such headers to update the original request. We'll base this on the
// list defined by RFC2616 7.1, with a few additions for extension headers
// we care about.
if (!shouldUpdateHeaderAfterRevalidation(it->key))
if (!shouldUpdateHeaderAfterRevalidation(header.key))
continue;
m_response.setHTTPHeaderField(it->key, it->value);
m_response.setHTTPHeaderField(header.key, header.value);
}
}
......@@ -812,10 +805,10 @@ void Resource::unregisterHandle(ResourcePtrBase* h)
bool Resource::canReuseRedirectChain()
{
for (size_t i = 0; i < m_redirectChain.size(); ++i) {
if (!canUseResponse(m_redirectChain[i].m_redirectResponse, m_responseTimestamp))
for (auto& redirect : m_redirectChain) {
if (!canUseResponse(redirect.m_redirectResponse, m_responseTimestamp))
return false;
if (m_redirectChain[i].m_request.cacheControlContainsNoCache() || m_redirectChain[i].m_request.cacheControlContainsNoStore())
if (redirect.m_request.cacheControlContainsNoCache() || redirect.m_request.cacheControlContainsNoStore())
return false;
}
return true;
......@@ -913,20 +906,19 @@ bool Resource::ResourceCallback::isScheduled(Resource* resource) const
void Resource::ResourceCallback::timerFired(Timer<ResourceCallback>*)
{
HashSet<Resource*>::iterator end = m_resourcesWithPendingClients.end();
Vector<ResourcePtr<Resource> > resources;
for (HashSet<Resource*>::iterator it = m_resourcesWithPendingClients.begin(); it != end; ++it)
resources.append(*it);
Vector<ResourcePtr<Resource>> resources;
for (const auto& resource : m_resourcesWithPendingClients)
resources.append(resource);
m_resourcesWithPendingClients.clear();
for (size_t i = 0; i < resources.size(); i++) {
resources[i]->assertAlive();
resources[i]->finishPendingClients();
resources[i]->assertAlive();
for (const auto& resource : resources) {
resource->assertAlive();
resource->finishPendingClients();
resource->assertAlive();
}
for (size_t i = 0; i < resources.size(); i++)
resources[i]->assertAlive();
for (const auto& resource : resources)
resource->assertAlive();
}
static const char* initatorTypeNameToString(const AtomicString& initiatorTypeName)
......
......@@ -38,11 +38,9 @@ public:
ResourceClientWalker(const HashCountedSet<ResourceClient*>& set)
: m_clientSet(set), m_clientVector(set.size()), m_index(0)
{
typedef HashCountedSet<ResourceClient*>::const_iterator Iterator;
Iterator end = set.end();
size_t clientIndex = 0;
for (Iterator current = set.begin(); current != end; ++current)
m_clientVector[clientIndex++] = current->key;
for (const auto& resourceClient : set)
m_clientVector[clientIndex++] = resourceClient.key;
}
T* next()
......
......@@ -809,12 +809,8 @@ void ResourceFetcher::resourceTimingReportTimerFired(Timer<ResourceFetcher>* tim
ASSERT_UNUSED(timer, timer == &m_resourceTimingReportTimer);
HashMap<RefPtr<ResourceTimingInfo>, bool> timingReports;
timingReports.swap(m_scheduledResourceTimingReports);
HashMap<RefPtr<ResourceTimingInfo>, bool>::iterator end = timingReports.end();
for (HashMap<RefPtr<ResourceTimingInfo>, bool>::iterator it = timingReports.begin(); it != end; ++it) {
RefPtr<ResourceTimingInfo> info = it->key;
bool isMainResource = it->value;
reportResourceTiming(info.get(), document(), isMainResource);
}
for (const auto& timingInfo : timingReports)
reportResourceTiming(timingInfo.key.get(), document(), timingInfo.value);
}
void ResourceFetcher::determineRequestContext(ResourceRequest& request, Resource::Type type)
......@@ -1137,9 +1133,8 @@ bool ResourceFetcher::shouldDeferImageLoad(const KURL& url) const
void ResourceFetcher::reloadImagesIfNotDeferred()
{
DocumentResourceMap::iterator end = m_documentResources.end();
for (DocumentResourceMap::iterator it = m_documentResources.begin(); it != end; ++it) {
Resource* resource = it->value.get();
for (const auto& documentResource : m_documentResources) {
Resource* resource = documentResource.value.get();
if (resource->type() == Resource::Image && resource->stillNeedsLoad() && !clientDefersImage(resource->url()))
const_cast<Resource*>(resource)->load(this, defaultResourceOptions());
}
......@@ -1195,9 +1190,9 @@ void ResourceFetcher::garbageCollectDocumentResources()
typedef Vector<String, 10> StringVector;
StringVector resourcesToDelete;
for (DocumentResourceMap::iterator it = m_documentResources.begin(); it != m_documentResources.end(); ++it) {
if (it->value->hasOneHandle())
resourcesToDelete.append(it->key);
for (const auto& documentResource : m_documentResources) {
if (documentResource.value->hasOneHandle())
resourcesToDelete.append(documentResource.key);
}
m_documentResources.removeAll(resourcesToDelete);
......@@ -1277,9 +1272,7 @@ bool ResourceFetcher::isPreloaded(const String& urlString) const
const KURL& url = m_document->completeURL(urlString);
if (m_preloads) {
ListHashSet<Resource*>::iterator end = m_preloads->end();
for (ListHashSet<Resource*>::iterator it = m_preloads->begin(); it != end; ++it) {
Resource* resource = *it;
for (const auto& resource : *m_preloads) {
if (resource->url() == url)
return true;
}
......@@ -1296,13 +1289,11 @@ void ResourceFetcher::clearPreloads()
if (!m_preloads)
return;
ListHashSet<Resource*>::iterator end = m_preloads->end();
for (ListHashSet<Resource*>::iterator it = m_preloads->begin(); it != end; ++it) {
Resource* res = *it;
res->decreasePreloadCount();
bool deleted = res->deleteIfPossible();
if (!deleted && res->preloadResult() == Resource::PreloadNotReferenced)
memoryCache()->remove(res);
for (const auto& resource : *m_preloads) {
resource->decreasePreloadCount();
bool deleted = resource->deleteIfPossible();
if (!deleted && resource->preloadResult() == Resource::PreloadNotReferenced)
memoryCache()->remove(resource);
}
m_preloads.clear();
}
......@@ -1472,34 +1463,32 @@ void ResourceFetcher::printPreloadStats()
unsigned stylesheetMisses = 0;
unsigned images = 0;
unsigned imageMisses = 0;
ListHashSet<Resource*>::iterator end = m_preloads->end();
for (ListHashSet<Resource*>::iterator it = m_preloads->begin(); it != end; ++it) {
Resource* res = *it;
if (res->preloadResult() == Resource::PreloadNotReferenced)
printf("!! UNREFERENCED PRELOAD %s\n", res->url().string().latin1().data());
else if (res->preloadResult() == Resource::PreloadReferencedWhileComplete)
printf("HIT COMPLETE PRELOAD %s\n", res->url().string().latin1().data());
else if (res->preloadResult() == Resource::PreloadReferencedWhileLoading)
printf("HIT LOADING PRELOAD %s\n", res->url().string().latin1().data());
if (res->type() == Resource::Script) {
for (const auto& resource : *m_preloads) {
if (resource->preloadResult() == Resource::PreloadNotReferenced)
printf("!! UNREFERENCED PRELOAD %s\n", resource->url().string().latin1().data());
else if (resource->preloadResult() == Resource::PreloadReferencedWhileComplete)
printf("HIT COMPLETE PRELOAD %s\n", resource->url().string().latin1().data());
else if (resource->preloadResult() == Resource::PreloadReferencedWhileLoading)
printf("HIT LOADING PRELOAD %s\n", resource->url().string().latin1().data());
if (resource->type() == Resource::Script) {
scripts++;
if (res->preloadResult() < Resource::PreloadReferencedWhileLoading)
if (resource->preloadResult() < Resource::PreloadReferencedWhileLoading)
scriptMisses++;
} else if (res->type() == Resource::CSSStyleSheet) {
} else if (resource->type() == Resource::CSSStyleSheet) {
stylesheets++;
if (res->preloadResult() < Resource::PreloadReferencedWhileLoading)
if (resource->preloadResult() < Resource::PreloadReferencedWhileLoading)
stylesheetMisses++;
} else {
images++;
if (res->preloadResult() < Resource::PreloadReferencedWhileLoading)
if (resource->preloadResult() < Resource::PreloadReferencedWhileLoading)
imageMisses++;
}
if (res->errorOccurred())
memoryCache()->remove(res);
if (resource->errorOccurred())
memoryCache()->remove(resource);
res->decreasePreloadCount();
resource->decreasePreloadCount();
}
m_preloads.clear();
......
......@@ -102,7 +102,7 @@ public:
Resource* cachedResource(const KURL&) const;
typedef HashMap<String, ResourcePtr<Resource> > DocumentResourceMap;
typedef HashMap<String, ResourcePtr<Resource>> DocumentResourceMap;
const DocumentResourceMap& allResources() const { return m_documentResources; }
bool autoLoadImages() const { return m_autoLoadImages; }
......@@ -212,12 +212,12 @@ private:
int m_requestCount;
OwnPtr<ListHashSet<Resource*> > m_preloads;
OwnPtr<ListHashSet<Resource*>> m_preloads;
Timer<ResourceFetcher> m_garbageCollectDocumentResourcesTimer;
Timer<ResourceFetcher> m_resourceTimingReportTimer;
typedef HashMap<Resource*, RefPtr<ResourceTimingInfo> > ResourceTimingInfoMap;
typedef HashMap<Resource*, RefPtr<ResourceTimingInfo>> ResourceTimingInfoMap;
ResourceTimingInfoMap m_resourceTimingInfoMap;
HashMap<RefPtr<ResourceTimingInfo>, bool> m_scheduledResourceTimingReports;
......
......@@ -83,11 +83,9 @@ void ResourceLoadPriorityOptimizer::updateAllImageResourcePriorities()
m_imageResources.clear();
Vector<RenderObject*> objectsToRemove;
for (RenderObjectSet::iterator it = m_objects.begin(); it != m_objects.end(); ++it) {
RenderObject* obj = *it;
if (!obj->updateImageLoadingPriorities()) {
objectsToRemove.append(obj);
}
for (const auto& renderObject : m_objects) {
if (!renderObject->updateImageLoadingPriorities())
objectsToRemove.append(renderObject);
}
m_objects.removeAll(objectsToRemove);
......@@ -96,13 +94,13 @@ void ResourceLoadPriorityOptimizer::updateAllImageResourcePriorities()
void ResourceLoadPriorityOptimizer::updateImageResourcesWithLoadPriority()
{
for (ImageResourceMap::iterator it = m_imageResources.begin(); it != m_imageResources.end(); ++it) {
ResourceLoadPriority priority = it->value->status == Visible ?
for (const auto& resource : m_imageResources) {
ResourceLoadPriority priority = resource.value->status == Visible ?
ResourceLoadPriorityLow : ResourceLoadPriorityVeryLow;
if (priority != it->value->imageResource->resourceRequest().priority()) {
it->value->imageResource->mutableResourceRequest().setPriority(priority, it->value->screenArea);
it->value->imageResource->didChangePriority(priority, it->value->screenArea);
if (priority != resource.value->imageResource->resourceRequest().priority()) {
resource.value->imageResource->mutableResourceRequest().setPriority(priority, resource.value->screenArea);
resource.value->imageResource->didChangePriority(priority, resource.value->screenArea);
}
}
m_imageResources.clear();
......
......@@ -68,7 +68,7 @@ private:
int screenArea;
};
typedef HashMap<unsigned long, OwnPtr<ResourceAndVisibility>, WTF::IntHash<unsigned>, WTF::UnsignedWithZeroKeyHashTraits<unsigned> > ImageResourceMap;
typedef HashMap<unsigned long, OwnPtr<ResourceAndVisibility>, WTF::IntHash<unsigned>, WTF::UnsignedWithZeroKeyHashTraits<unsigned>> ImageResourceMap;
ImageResourceMap m_imageResources;
typedef HashSet<RenderObject*> RenderObjectSet;
......
......@@ -49,20 +49,18 @@ void ResourceLoaderSet::trace(Visitor* visitor)
void ResourceLoaderSet::cancelAll()
{
WillBeHeapVector<RefPtrWillBeMember<ResourceLoader> > loadersCopy;
WillBeHeapVector<RefPtrWillBeMember<ResourceLoader>> loadersCopy;
copyToVector(m_set, loadersCopy);
size_t size = loadersCopy.size();
for (size_t i = 0; i < size; ++i)
loadersCopy[i]->cancel();
for (const auto& loader : loadersCopy)
loader->cancel();
}
void ResourceLoaderSet::setAllDefersLoading(bool defers)
{
WillBeHeapVector<RefPtrWillBeMember<ResourceLoader> > loadersCopy;
WillBeHeapVector<RefPtrWillBeMember<ResourceLoader>> loadersCopy;
copyToVector(m_set, loadersCopy);
size_t size = loadersCopy.size();
for (size_t i = 0; i < size; ++i)
loadersCopy[i]->setDefersLoading(defers);
for (const auto& loader : loadersCopy)
loader->setDefersLoading(defers);
}
}
......@@ -38,7 +38,7 @@ namespace blink {
class ResourceLoaderSet final : public NoBaseWillBeGarbageCollected<ResourceLoaderSet> {
public:
typedef WillBeHeapHashSet<RefPtrWillBeMember<ResourceLoader> > SetType;
typedef WillBeHeapHashSet<RefPtrWillBeMember<ResourceLoader>> SetType;
static PassOwnPtrWillBeRawPtr<ResourceLoaderSet> create();
void trace(Visitor*);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment