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
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 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
368 resource->setIdentifier(createUniqueIdentifier()); | 368 resource->setIdentifier(createUniqueIdentifier()); |
369 resource->setCacheIdentifier(cacheIdentifier); | 369 resource->setCacheIdentifier(cacheIdentifier); |
370 resource->finish(); | 370 resource->finish(); |
371 | 371 |
372 if (!substituteData.isValid()) | 372 if (!substituteData.isValid()) |
373 memoryCache()->add(resource); | 373 memoryCache()->add(resource); |
374 | 374 |
375 return resource; | 375 return resource; |
376 } | 376 } |
377 | 377 |
| 378 Resource* ResourceFetcher::resourceForBlockedRequest(const FetchRequest& request
, const ResourceFactory& factory) |
| 379 { |
| 380 Resource* resource = factory.create(request.resourceRequest(), request.optio
ns(), request.charset()); |
| 381 resource->error(ResourceError::cancelledDueToAccessCheckError(request.url())
); |
| 382 return resource; |
| 383 } |
| 384 |
378 void ResourceFetcher::moveCachedNonBlockingResourceToBlocking(Resource* resource
, const FetchRequest& request) | 385 void ResourceFetcher::moveCachedNonBlockingResourceToBlocking(Resource* resource
, const FetchRequest& request) |
379 { | 386 { |
380 // TODO(yoav): Test that non-blocking resources (video/audio/track) continue
to not-block even after being preloaded and discovered. | 387 // TODO(yoav): Test that non-blocking resources (video/audio/track) continue
to not-block even after being preloaded and discovered. |
381 if (resource && resource->loader() && resource->isLoadEventBlockingResourceT
ype() && resource->isLinkPreload() && !request.forPreload()) { | 388 if (resource && resource->loader() && resource->isLoadEventBlockingResourceT
ype() && resource->isLinkPreload() && !request.forPreload()) { |
382 m_nonBlockingLoaders.remove(resource->loader()); | 389 m_nonBlockingLoaders.remove(resource->loader()); |
383 m_loaders.add(resource->loader()); | 390 m_loaders.add(resource->loader()); |
384 } | 391 } |
385 } | 392 } |
386 | 393 |
387 void ResourceFetcher::updateMemoryCacheStats(Resource* resource, RevalidationPol
icy policy, const FetchRequest& request, const ResourceFactory& factory, bool i
sStaticData) const | 394 void ResourceFetcher::updateMemoryCacheStats(Resource* resource, RevalidationPol
icy policy, const FetchRequest& request, const ResourceFactory& factory, bool i
sStaticData) const |
(...skipping 24 matching lines...) Expand all Loading... |
412 if (request.resourceRequest().httpHeaderField("Upgrade-Insecure-Requests") !
= AtomicString("1")) | 419 if (request.resourceRequest().httpHeaderField("Upgrade-Insecure-Requests") !
= AtomicString("1")) |
413 context().upgradeInsecureRequest(request.mutableResourceRequest()); | 420 context().upgradeInsecureRequest(request.mutableResourceRequest()); |
414 context().addClientHintsIfNecessary(request); | 421 context().addClientHintsIfNecessary(request); |
415 context().addCSPHeaderIfNecessary(factory.type(), request); | 422 context().addCSPHeaderIfNecessary(factory.type(), request); |
416 | 423 |
417 TRACE_EVENT1("blink", "ResourceFetcher::requestResource", "url", urlForTrace
Event(request.url())); | 424 TRACE_EVENT1("blink", "ResourceFetcher::requestResource", "url", urlForTrace
Event(request.url())); |
418 | 425 |
419 if (!request.url().isValid()) | 426 if (!request.url().isValid()) |
420 return nullptr; | 427 return nullptr; |
421 | 428 |
422 if (!context().canRequest(factory.type(), request.resourceRequest(), MemoryC
ache::removeFragmentIdentifierIfNeeded(request.url()), request.options(), reques
t.forPreload(), request.getOriginRestriction())) | 429 if (!context().canRequest(factory.type(), request.resourceRequest(), MemoryC
ache::removeFragmentIdentifierIfNeeded(request.url()), request.options(), reques
t.forPreload(), request.getOriginRestriction())) { |
423 return nullptr; | 430 DCHECK(!substituteData.forceSynchronousLoad()); |
| 431 return resourceForBlockedRequest(request, factory); |
| 432 } |
424 | 433 |
425 unsigned long identifier = createUniqueIdentifier(); | 434 unsigned long identifier = createUniqueIdentifier(); |
426 request.mutableResourceRequest().setPriority(computeLoadPriority(factory.typ
e(), request, ResourcePriority::NotVisible)); | 435 request.mutableResourceRequest().setPriority(computeLoadPriority(factory.typ
e(), request, ResourcePriority::NotVisible)); |
427 initializeResourceRequest(request.mutableResourceRequest(), factory.type(),
request.defer()); | 436 initializeResourceRequest(request.mutableResourceRequest(), factory.type(),
request.defer()); |
428 context().willStartLoadingResource(identifier, request.mutableResourceReques
t(), factory.type()); | 437 context().willStartLoadingResource(identifier, request.mutableResourceReques
t(), factory.type()); |
429 if (!request.url().isValid()) | 438 if (!request.url().isValid()) |
430 return nullptr; | 439 return nullptr; |
431 | 440 |
432 if (!request.forPreload()) { | 441 if (!request.forPreload()) { |
433 V8DOMActivityLogger* activityLogger = nullptr; | 442 V8DOMActivityLogger* activityLogger = nullptr; |
(...skipping 934 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1368 visitor->trace(m_context); | 1377 visitor->trace(m_context); |
1369 visitor->trace(m_archive); | 1378 visitor->trace(m_archive); |
1370 visitor->trace(m_loaders); | 1379 visitor->trace(m_loaders); |
1371 visitor->trace(m_nonBlockingLoaders); | 1380 visitor->trace(m_nonBlockingLoaders); |
1372 visitor->trace(m_documentResources); | 1381 visitor->trace(m_documentResources); |
1373 visitor->trace(m_preloads); | 1382 visitor->trace(m_preloads); |
1374 visitor->trace(m_resourceTimingInfoMap); | 1383 visitor->trace(m_resourceTimingInfoMap); |
1375 } | 1384 } |
1376 | 1385 |
1377 } // namespace blink | 1386 } // namespace blink |
OLD | NEW |