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

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

Issue 1987413002: Add link preload as=document support Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: crash fix Created 4 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
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 1006 matching lines...) Expand 10 before | Expand all | Expand 10 after
1017 1017
1018 void ResourceFetcher::moveResourceLoaderToNonBlocking(ResourceLoader* loader) 1018 void ResourceFetcher::moveResourceLoaderToNonBlocking(ResourceLoader* loader)
1019 { 1019 {
1020 m_nonBlockingLoaders.add(loader); 1020 m_nonBlockingLoaders.add(loader);
1021 m_loaders.remove(loader); 1021 m_loaders.remove(loader);
1022 } 1022 }
1023 1023
1024 bool ResourceFetcher::startLoad(Resource* resource) 1024 bool ResourceFetcher::startLoad(Resource* resource)
1025 { 1025 {
1026 DCHECK(resource && resource->stillNeedsLoad()); 1026 DCHECK(resource && resource->stillNeedsLoad());
1027 if (!context().shouldLoadNewResource(resource->getType())) { 1027 if (!context().shouldLoadNewResource(resource->getType(), resource->resource Request().frameType())) {
1028 memoryCache()->remove(resource); 1028 memoryCache()->remove(resource);
1029 return false; 1029 return false;
1030 } 1030 }
1031 1031
1032 ResourceRequest request(resource->resourceRequest()); 1032 ResourceRequest request(resource->resourceRequest());
1033 willSendRequest(resource->identifier(), request, ResourceResponse(), resourc e->options()); 1033 willSendRequest(resource->identifier(), request, ResourceResponse(), resourc e->options());
1034 1034
1035 ResourceLoader* loader = ResourceLoader::create(this, resource); 1035 ResourceLoader* loader = ResourceLoader::create(this, resource);
1036 if (resource->shouldBlockLoadEvent()) 1036 if (resource->shouldBlockLoadEvent())
1037 m_loaders.add(loader); 1037 m_loaders.add(loader);
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1173 unsigned fonts = 0; 1173 unsigned fonts = 0;
1174 unsigned fontMisses = 0; 1174 unsigned fontMisses = 0;
1175 unsigned medias = 0; 1175 unsigned medias = 0;
1176 unsigned mediaMisses = 0; 1176 unsigned mediaMisses = 0;
1177 unsigned textTracks = 0; 1177 unsigned textTracks = 0;
1178 unsigned textTrackMisses = 0; 1178 unsigned textTrackMisses = 0;
1179 unsigned imports = 0; 1179 unsigned imports = 0;
1180 unsigned importMisses = 0; 1180 unsigned importMisses = 0;
1181 unsigned raws = 0; 1181 unsigned raws = 0;
1182 unsigned rawMisses = 0; 1182 unsigned rawMisses = 0;
1183 unsigned mains = 0;
1184 unsigned mainMisses = 0;
1183 for (auto resource : *m_preloads) { 1185 for (auto resource : *m_preloads) {
1184 int missCount = resource->getPreloadResult() == Resource::PreloadNotRefe renced ? 1 : 0; 1186 int missCount = resource->getPreloadResult() == Resource::PreloadNotRefe renced ? 1 : 0;
1185 switch (resource->getType()) { 1187 switch (resource->getType()) {
1186 case Resource::Image: 1188 case Resource::Image:
1187 images++; 1189 images++;
1188 imageMisses += missCount; 1190 imageMisses += missCount;
1189 break; 1191 break;
1190 case Resource::Script: 1192 case Resource::Script:
1191 scripts++; 1193 scripts++;
1192 scriptMisses += missCount; 1194 scriptMisses += missCount;
(...skipping 15 matching lines...) Expand all
1208 textTrackMisses += missCount; 1210 textTrackMisses += missCount;
1209 break; 1211 break;
1210 case Resource::ImportResource: 1212 case Resource::ImportResource:
1211 imports++; 1213 imports++;
1212 importMisses += missCount; 1214 importMisses += missCount;
1213 break; 1215 break;
1214 case Resource::Raw: 1216 case Resource::Raw:
1215 raws++; 1217 raws++;
1216 rawMisses += missCount; 1218 rawMisses += missCount;
1217 break; 1219 break;
1220 case Resource::MainResource:
1221 mains++;
1222 mainMisses += missCount;
1223 break;
1218 default: 1224 default:
1219 ASSERT_NOT_REACHED(); 1225 ASSERT_NOT_REACHED();
1220 } 1226 }
1221 } 1227 }
1222 // TODO(csharrison): These can falsely attribute link rel="preload" requests 1228 // TODO(csharrison): These can falsely attribute link rel="preload" requests
1223 // as misses if they are referenced after parsing completes. Migrate this 1229 // as misses if they are referenced after parsing completes. Migrate this
1224 // logic to the memory cache / individual resources to prevent this. 1230 // logic to the memory cache / individual resources to prevent this.
1225 DEFINE_STATIC_LOCAL(CustomCountHistogram, imagePreloads, ("PreloadScanner.Co unts2.Image", 0, 100, 25)); 1231 DEFINE_STATIC_LOCAL(CustomCountHistogram, imagePreloads, ("PreloadScanner.Co unts2.Image", 0, 100, 25));
1226 DEFINE_STATIC_LOCAL(CustomCountHistogram, imagePreloadMisses, ("PreloadScann er.Counts2.Miss.Image", 0, 100, 25)); 1232 DEFINE_STATIC_LOCAL(CustomCountHistogram, imagePreloadMisses, ("PreloadScann er.Counts2.Miss.Image", 0, 100, 25));
1227 DEFINE_STATIC_LOCAL(CustomCountHistogram, scriptPreloads, ("PreloadScanner.C ounts2.Script", 0, 100, 25)); 1233 DEFINE_STATIC_LOCAL(CustomCountHistogram, scriptPreloads, ("PreloadScanner.C ounts2.Script", 0, 100, 25));
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
1323 visitor->trace(m_context); 1329 visitor->trace(m_context);
1324 visitor->trace(m_archive); 1330 visitor->trace(m_archive);
1325 visitor->trace(m_loaders); 1331 visitor->trace(m_loaders);
1326 visitor->trace(m_nonBlockingLoaders); 1332 visitor->trace(m_nonBlockingLoaders);
1327 visitor->trace(m_documentResources); 1333 visitor->trace(m_documentResources);
1328 visitor->trace(m_preloads); 1334 visitor->trace(m_preloads);
1329 visitor->trace(m_resourceTimingInfoMap); 1335 visitor->trace(m_resourceTimingInfoMap);
1330 } 1336 }
1331 1337
1332 } // namespace blink 1338 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/fetch/RawResource.cpp ('k') | third_party/WebKit/Source/core/fetch/ResourceFetcherTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698