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

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

Issue 2423683002: Add Blink support for showing image placeholders using range requests. (Closed)
Patch Set: Addressed comments Created 4 years, 2 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
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 5 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All
6 rights reserved. 6 rights reserved.
7 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/ 7 Copyright (C) 2009 Torch Mobile Inc. http://www.torchmobile.com/
8 8
9 This library is free software; you can redistribute it and/or 9 This library is free software; you can redistribute it and/or
10 modify it under the terms of the GNU Library General Public 10 modify it under the terms of the GNU Library General Public
(...skipping 1146 matching lines...) Expand 10 before | Expand all | Expand 10 after
1157 if (resource->options().requestInitiatorContext == DocumentContext) 1157 if (resource->options().requestInitiatorContext == DocumentContext)
1158 context().addResourceTiming(*info); 1158 context().addResourceTiming(*info);
1159 resource->reportResourceTimingToClients(*info); 1159 resource->reportResourceTimingToClients(*info);
1160 } 1160 }
1161 } 1161 }
1162 context().dispatchDidFinishLoading(resource->identifier(), finishTime, 1162 context().dispatchDidFinishLoading(resource->identifier(), finishTime,
1163 encodedDataLength); 1163 encodedDataLength);
1164 if (finishReason == DidFinishLoading) 1164 if (finishReason == DidFinishLoading)
1165 resource->finish(finishTime); 1165 resource->finish(finishTime);
1166 context().didLoadResource(resource); 1166 context().didLoadResource(resource);
1167
1168 if (resource->isImage() &&
1169 toImageResource(resource)->shouldReloadBrokenPlaceholder()) {
1170 toImageResource(resource)->reloadIfLoFiOrPlaceholder(this);
1171 }
1167 } 1172 }
1168 1173
1169 void ResourceFetcher::didFailLoading(Resource* resource, 1174 void ResourceFetcher::didFailLoading(Resource* resource,
1170 const ResourceError& error) { 1175 const ResourceError& error) {
1171 TRACE_EVENT_ASYNC_END0("blink.net", "Resource", resource->identifier()); 1176 TRACE_EVENT_ASYNC_END0("blink.net", "Resource", resource->identifier());
1172 removeResourceLoader(resource->loader()); 1177 removeResourceLoader(resource->loader());
1173 m_resourceTimingInfoMap.take(const_cast<Resource*>(resource)); 1178 m_resourceTimingInfoMap.take(const_cast<Resource*>(resource));
1174 bool isInternalRequest = resource->options().initiatorInfo.name == 1179 bool isInternalRequest = resource->options().initiatorInfo.name ==
1175 FetchInitiatorTypeNames::internal; 1180 FetchInitiatorTypeNames::internal;
1176 context().dispatchDidFail(resource->identifier(), error, isInternalRequest); 1181 context().dispatchDidFail(resource->identifier(), error, isInternalRequest);
1177 resource->error(error); 1182 resource->error(error);
1178 context().didLoadResource(resource); 1183 context().didLoadResource(resource);
1184
1185 if (resource->isImage() &&
1186 toImageResource(resource)->shouldReloadBrokenPlaceholder()) {
1187 toImageResource(resource)->reloadIfLoFiOrPlaceholder(this);
1188 }
1179 } 1189 }
1180 1190
1181 void ResourceFetcher::didReceiveResponse(Resource* resource, 1191 void ResourceFetcher::didReceiveResponse(Resource* resource,
1182 const ResourceResponse& response, 1192 const ResourceResponse& response,
1183 WebDataConsumerHandle* rawHandle) { 1193 WebDataConsumerHandle* rawHandle) {
1184 // |rawHandle|'s ownership is transferred to the callee. 1194 // |rawHandle|'s ownership is transferred to the callee.
1185 std::unique_ptr<WebDataConsumerHandle> handle = wrapUnique(rawHandle); 1195 std::unique_ptr<WebDataConsumerHandle> handle = wrapUnique(rawHandle);
1186 1196
1187 if (response.wasFetchedViaServiceWorker()) { 1197 if (response.wasFetchedViaServiceWorker()) {
1188 if (resource->options().corsEnabled == IsCORSEnabled && 1198 if (resource->options().corsEnabled == IsCORSEnabled &&
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
1416 resource->identifier(), resourceLoadPriority, 1426 resource->identifier(), resourceLoadPriority,
1417 resourcePriority.intraPriorityValue); 1427 resourcePriority.intraPriorityValue);
1418 } 1428 }
1419 } 1429 }
1420 1430
1421 void ResourceFetcher::reloadLoFiImages() { 1431 void ResourceFetcher::reloadLoFiImages() {
1422 for (const auto& documentResource : m_documentResources) { 1432 for (const auto& documentResource : m_documentResources) {
1423 Resource* resource = documentResource.value.get(); 1433 Resource* resource = documentResource.value.get();
1424 if (resource && resource->isImage()) { 1434 if (resource && resource->isImage()) {
1425 ImageResource* imageResource = toImageResource(resource); 1435 ImageResource* imageResource = toImageResource(resource);
1426 imageResource->reloadIfLoFi(this); 1436 imageResource->reloadIfLoFiOrPlaceholder(this);
1427 } 1437 }
1428 } 1438 }
1429 } 1439 }
1430 1440
1431 void ResourceFetcher::logPreloadStats() { 1441 void ResourceFetcher::logPreloadStats() {
1432 if (!m_preloads) 1442 if (!m_preloads)
1433 return; 1443 return;
1434 unsigned scripts = 0; 1444 unsigned scripts = 0;
1435 unsigned scriptMisses = 0; 1445 unsigned scriptMisses = 0;
1436 unsigned stylesheets = 0; 1446 unsigned stylesheets = 0;
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
1612 visitor->trace(m_context); 1622 visitor->trace(m_context);
1613 visitor->trace(m_archive); 1623 visitor->trace(m_archive);
1614 visitor->trace(m_loaders); 1624 visitor->trace(m_loaders);
1615 visitor->trace(m_nonBlockingLoaders); 1625 visitor->trace(m_nonBlockingLoaders);
1616 visitor->trace(m_documentResources); 1626 visitor->trace(m_documentResources);
1617 visitor->trace(m_preloads); 1627 visitor->trace(m_preloads);
1618 visitor->trace(m_resourceTimingInfoMap); 1628 visitor->trace(m_resourceTimingInfoMap);
1619 } 1629 }
1620 1630
1621 } // namespace blink 1631 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698