OLD | NEW |
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 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
444 return resource; | 444 return resource; |
445 } | 445 } |
446 | 446 |
447 void ResourceFetcher::moveCachedNonBlockingResourceToBlocking( | 447 void ResourceFetcher::moveCachedNonBlockingResourceToBlocking( |
448 Resource* resource, | 448 Resource* resource, |
449 const FetchRequest& request) { | 449 const FetchRequest& request) { |
450 // TODO(yoav): Test that non-blocking resources (video/audio/track) continue | 450 // TODO(yoav): Test that non-blocking resources (video/audio/track) continue |
451 // to not-block even after being preloaded and discovered. | 451 // to not-block even after being preloaded and discovered. |
452 if (resource && resource->loader() && | 452 if (resource && resource->loader() && |
453 resource->isLoadEventBlockingResourceType() && | 453 resource->isLoadEventBlockingResourceType() && |
| 454 m_nonBlockingLoaders.contains(resource->loader()) && |
454 resource->isLinkPreload() && !request.forPreload()) { | 455 resource->isLinkPreload() && !request.forPreload()) { |
455 m_nonBlockingLoaders.remove(resource->loader()); | 456 m_nonBlockingLoaders.remove(resource->loader()); |
456 m_loaders.add(resource->loader()); | 457 m_loaders.add(resource->loader()); |
457 } | 458 } |
458 } | 459 } |
459 | 460 |
460 void ResourceFetcher::updateMemoryCacheStats(Resource* resource, | 461 void ResourceFetcher::updateMemoryCacheStats(Resource* resource, |
461 RevalidationPolicy policy, | 462 RevalidationPolicy policy, |
462 const FetchRequest& request, | 463 const FetchRequest& request, |
463 const ResourceFactory& factory, | 464 const ResourceFactory& factory, |
(...skipping 809 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1273 | 1274 |
1274 void ResourceFetcher::acceptDataFromThreadedReceiver(unsigned long identifier, | 1275 void ResourceFetcher::acceptDataFromThreadedReceiver(unsigned long identifier, |
1275 const char* data, | 1276 const char* data, |
1276 int dataLength, | 1277 int dataLength, |
1277 int encodedDataLength) { | 1278 int encodedDataLength) { |
1278 context().dispatchDidReceiveData(identifier, data, dataLength, | 1279 context().dispatchDidReceiveData(identifier, data, dataLength, |
1279 encodedDataLength); | 1280 encodedDataLength); |
1280 } | 1281 } |
1281 | 1282 |
1282 void ResourceFetcher::moveResourceLoaderToNonBlocking(ResourceLoader* loader) { | 1283 void ResourceFetcher::moveResourceLoaderToNonBlocking(ResourceLoader* loader) { |
| 1284 DCHECK(loader); |
| 1285 // TODO(yoav): Convert CHECK to DCHECK if no crash reports come in. |
| 1286 CHECK(m_loaders.contains(loader)); |
1283 m_nonBlockingLoaders.add(loader); | 1287 m_nonBlockingLoaders.add(loader); |
1284 m_loaders.remove(loader); | 1288 m_loaders.remove(loader); |
1285 } | 1289 } |
1286 | 1290 |
1287 bool ResourceFetcher::startLoad(Resource* resource) { | 1291 bool ResourceFetcher::startLoad(Resource* resource) { |
1288 DCHECK(resource); | 1292 DCHECK(resource); |
1289 DCHECK(resource->stillNeedsLoad()); | 1293 DCHECK(resource->stillNeedsLoad()); |
1290 if (!context().shouldLoadNewResource(resource->getType())) { | 1294 if (!context().shouldLoadNewResource(resource->getType())) { |
1291 memoryCache()->remove(resource); | 1295 memoryCache()->remove(resource); |
1292 return false; | 1296 return false; |
(...skipping 24 matching lines...) Expand all Loading... |
1317 storeResourceTimingInitiatorInformation(resource); | 1321 storeResourceTimingInitiatorInformation(resource); |
1318 resource->setFetcherSecurityOrigin(sourceOrigin); | 1322 resource->setFetcherSecurityOrigin(sourceOrigin); |
1319 | 1323 |
1320 loader->activateCacheAwareLoadingIfNeeded(request); | 1324 loader->activateCacheAwareLoadingIfNeeded(request); |
1321 loader->start(request, context().loadingTaskRunner(), | 1325 loader->start(request, context().loadingTaskRunner(), |
1322 context().defersLoading()); | 1326 context().defersLoading()); |
1323 return true; | 1327 return true; |
1324 } | 1328 } |
1325 | 1329 |
1326 void ResourceFetcher::removeResourceLoader(ResourceLoader* loader) { | 1330 void ResourceFetcher::removeResourceLoader(ResourceLoader* loader) { |
| 1331 DCHECK(loader); |
1327 if (m_loaders.contains(loader)) | 1332 if (m_loaders.contains(loader)) |
1328 m_loaders.remove(loader); | 1333 m_loaders.remove(loader); |
1329 else if (m_nonBlockingLoaders.contains(loader)) | 1334 else if (m_nonBlockingLoaders.contains(loader)) |
1330 m_nonBlockingLoaders.remove(loader); | 1335 m_nonBlockingLoaders.remove(loader); |
1331 else | 1336 else |
1332 NOTREACHED(); | 1337 NOTREACHED(); |
1333 } | 1338 } |
1334 | 1339 |
1335 void ResourceFetcher::stopFetching() { | 1340 void ResourceFetcher::stopFetching() { |
1336 HeapVector<Member<ResourceLoader>> loadersToCancel; | 1341 HeapVector<Member<ResourceLoader>> loadersToCancel; |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1641 visitor->trace(m_context); | 1646 visitor->trace(m_context); |
1642 visitor->trace(m_archive); | 1647 visitor->trace(m_archive); |
1643 visitor->trace(m_loaders); | 1648 visitor->trace(m_loaders); |
1644 visitor->trace(m_nonBlockingLoaders); | 1649 visitor->trace(m_nonBlockingLoaders); |
1645 visitor->trace(m_documentResources); | 1650 visitor->trace(m_documentResources); |
1646 visitor->trace(m_preloads); | 1651 visitor->trace(m_preloads); |
1647 visitor->trace(m_resourceTimingInfoMap); | 1652 visitor->trace(m_resourceTimingInfoMap); |
1648 } | 1653 } |
1649 | 1654 |
1650 } // namespace blink | 1655 } // namespace blink |
OLD | NEW |