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