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 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
425 resource->setIdentifier(createUniqueIdentifier()); | 425 resource->setIdentifier(createUniqueIdentifier()); |
426 resource->setCacheIdentifier(cacheIdentifier); | 426 resource->setCacheIdentifier(cacheIdentifier); |
427 resource->finish(); | 427 resource->finish(); |
428 | 428 |
429 if (!substituteData.isValid()) | 429 if (!substituteData.isValid()) |
430 memoryCache()->add(resource); | 430 memoryCache()->add(resource); |
431 | 431 |
432 return resource; | 432 return resource; |
433 } | 433 } |
434 | 434 |
435 Resource* ResourceFetcher::resourceForBlockedRequest( | |
436 const FetchRequest& request, | |
437 const ResourceFactory& factory) { | |
438 Resource* resource = factory.create(request.resourceRequest(), | |
439 request.options(), request.charset()); | |
440 resource->error(ResourceError::cancelledDueToAccessCheckError(request.url())); | |
441 return resource; | |
442 } | |
443 | |
444 void ResourceFetcher::moveCachedNonBlockingResourceToBlocking( | 435 void ResourceFetcher::moveCachedNonBlockingResourceToBlocking( |
445 Resource* resource, | 436 Resource* resource, |
446 const FetchRequest& request) { | 437 const FetchRequest& request) { |
447 // TODO(yoav): Test that non-blocking resources (video/audio/track) continue | 438 // TODO(yoav): Test that non-blocking resources (video/audio/track) continue |
448 // to not-block even after being preloaded and discovered. | 439 // to not-block even after being preloaded and discovered. |
449 if (resource && resource->loader() && | 440 if (resource && resource->loader() && |
450 resource->isLoadEventBlockingResourceType() && | 441 resource->isLoadEventBlockingResourceType() && |
451 resource->isLinkPreload() && !request.forPreload()) { | 442 resource->isLinkPreload() && !request.forPreload()) { |
452 m_nonBlockingLoaders.remove(resource->loader()); | 443 m_nonBlockingLoaders.remove(resource->loader()); |
453 m_loaders.add(resource->loader()); | 444 m_loaders.add(resource->loader()); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
497 TRACE_EVENT1("blink", "ResourceFetcher::requestResource", "url", | 488 TRACE_EVENT1("blink", "ResourceFetcher::requestResource", "url", |
498 urlForTraceEvent(request.url())); | 489 urlForTraceEvent(request.url())); |
499 | 490 |
500 if (!request.url().isValid()) | 491 if (!request.url().isValid()) |
501 return nullptr; | 492 return nullptr; |
502 | 493 |
503 if (!context().canRequest( | 494 if (!context().canRequest( |
504 factory.type(), request.resourceRequest(), | 495 factory.type(), request.resourceRequest(), |
505 MemoryCache::removeFragmentIdentifierIfNeeded(request.url()), | 496 MemoryCache::removeFragmentIdentifierIfNeeded(request.url()), |
506 request.options(), request.forPreload(), | 497 request.options(), request.forPreload(), |
507 request.getOriginRestriction())) { | 498 request.getOriginRestriction())) |
508 DCHECK(!substituteData.forceSynchronousLoad()); | 499 return nullptr; |
509 return resourceForBlockedRequest(request, factory); | |
510 } | |
511 | 500 |
512 unsigned long identifier = createUniqueIdentifier(); | 501 unsigned long identifier = createUniqueIdentifier(); |
513 request.mutableResourceRequest().setPriority(computeLoadPriority( | 502 request.mutableResourceRequest().setPriority(computeLoadPriority( |
514 factory.type(), request, ResourcePriority::NotVisible)); | 503 factory.type(), request, ResourcePriority::NotVisible)); |
515 initializeResourceRequest(request.mutableResourceRequest(), factory.type(), | 504 initializeResourceRequest(request.mutableResourceRequest(), factory.type(), |
516 request.defer()); | 505 request.defer()); |
517 context().willStartLoadingResource( | 506 context().willStartLoadingResource( |
518 identifier, request.mutableResourceRequest(), factory.type()); | 507 identifier, request.mutableResourceRequest(), factory.type()); |
519 if (!request.url().isValid()) | 508 if (!request.url().isValid()) |
520 return nullptr; | 509 return nullptr; |
(...skipping 1083 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1604 visitor->trace(m_context); | 1593 visitor->trace(m_context); |
1605 visitor->trace(m_archive); | 1594 visitor->trace(m_archive); |
1606 visitor->trace(m_loaders); | 1595 visitor->trace(m_loaders); |
1607 visitor->trace(m_nonBlockingLoaders); | 1596 visitor->trace(m_nonBlockingLoaders); |
1608 visitor->trace(m_documentResources); | 1597 visitor->trace(m_documentResources); |
1609 visitor->trace(m_preloads); | 1598 visitor->trace(m_preloads); |
1610 visitor->trace(m_resourceTimingInfoMap); | 1599 visitor->trace(m_resourceTimingInfoMap); |
1611 } | 1600 } |
1612 | 1601 |
1613 } // namespace blink | 1602 } // namespace blink |
OLD | NEW |