| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2011 Google Inc. All rights reserved. | 3 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * | 8 * |
| 9 * 1. Redistributions of source code must retain the above copyright | 9 * 1. Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 183 case Resource::ImportResource: | 183 case Resource::ImportResource: |
| 184 resource = RawResource::fetchImport(request, fetcher()); | 184 resource = RawResource::fetchImport(request, fetcher()); |
| 185 break; | 185 break; |
| 186 case Resource::Raw: | 186 case Resource::Raw: |
| 187 resource = RawResource::fetch(request, fetcher()); | 187 resource = RawResource::fetch(request, fetcher()); |
| 188 break; | 188 break; |
| 189 default: | 189 default: |
| 190 NOTREACHED(); | 190 NOTREACHED(); |
| 191 } | 191 } |
| 192 | 192 |
| 193 // CSP layout tests verify that preloads are subject to access checks by | 193 if (resource) |
| 194 // seeing if they are in the `preload started` list. Therefore do not add | |
| 195 // them to the list if the load is immediately denied. | |
| 196 if (resource && !resource->resourceError().isAccessCheck()) | |
| 197 fetcher()->preloadStarted(resource); | 194 fetcher()->preloadStarted(resource); |
| 198 return resource; | 195 return resource; |
| 199 } | 196 } |
| 200 | 197 |
| 201 void DocumentLoader::didRedirect(const KURL& oldURL, const KURL& newURL) { | 198 void DocumentLoader::didRedirect(const KURL& oldURL, const KURL& newURL) { |
| 202 timing().addRedirect(oldURL, newURL); | 199 timing().addRedirect(oldURL, newURL); |
| 203 | 200 |
| 204 // If a redirection happens during a back/forward navigation, don't restore | 201 // If a redirection happens during a back/forward navigation, don't restore |
| 205 // any state from the old HistoryItem. There is a provisional history item for | 202 // any state from the old HistoryItem. There is a provisional history item for |
| 206 // back/forward navigation only. In the other case, clearing it is a no-op. | 203 // back/forward navigation only. In the other case, clearing it is a no-op. |
| (...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 677 } | 674 } |
| 678 | 675 |
| 679 DEFINE_STATIC_LOCAL( | 676 DEFINE_STATIC_LOCAL( |
| 680 ResourceLoaderOptions, mainResourceLoadOptions, | 677 ResourceLoaderOptions, mainResourceLoadOptions, |
| 681 (DoNotBufferData, AllowStoredCredentials, ClientRequestedCredentials, | 678 (DoNotBufferData, AllowStoredCredentials, ClientRequestedCredentials, |
| 682 CheckContentSecurityPolicy, DocumentContext)); | 679 CheckContentSecurityPolicy, DocumentContext)); |
| 683 FetchRequest fetchRequest(m_request, FetchInitiatorTypeNames::document, | 680 FetchRequest fetchRequest(m_request, FetchInitiatorTypeNames::document, |
| 684 mainResourceLoadOptions); | 681 mainResourceLoadOptions); |
| 685 m_mainResource = | 682 m_mainResource = |
| 686 RawResource::fetchMainResource(fetchRequest, fetcher(), m_substituteData); | 683 RawResource::fetchMainResource(fetchRequest, fetcher(), m_substituteData); |
| 687 | 684 if (!m_mainResource) { |
| 688 // PlzNavigate: | |
| 689 // The final access checks are still performed here, potentially rejecting | |
| 690 // the "provisional" load, but the browser side already expects the renderer | |
| 691 // to be able to unconditionally commit. | |
| 692 if (!m_mainResource || (m_frame->settings()->browserSideNavigationEnabled() && | |
| 693 m_mainResource->errorOccurred())) { | |
| 694 m_request = ResourceRequest(blankURL()); | 685 m_request = ResourceRequest(blankURL()); |
| 695 maybeLoadEmpty(); | 686 maybeLoadEmpty(); |
| 696 return; | 687 return; |
| 697 } | 688 } |
| 698 // A bunch of headers are set when the underlying resource load begins, and | 689 // A bunch of headers are set when the underlying resource load begins, and |
| 699 // m_request needs to include those. Even when using a cached resource, we may | 690 // m_request needs to include those. Even when using a cached resource, we may |
| 700 // make some modification to the request, e.g. adding the referer header. | 691 // make some modification to the request, e.g. adding the referer header. |
| 701 m_request = m_mainResource->isLoading() ? m_mainResource->resourceRequest() | 692 m_request = m_mainResource->isLoading() ? m_mainResource->resourceRequest() |
| 702 : fetchRequest.resourceRequest(); | 693 : fetchRequest.resourceRequest(); |
| 703 m_mainResource->addClient(this); | 694 m_mainResource->addClient(this); |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 761 m_writer ? m_writer->encoding() : emptyAtom, true, | 752 m_writer ? m_writer->encoding() : emptyAtom, true, |
| 762 ForceSynchronousParsing); | 753 ForceSynchronousParsing); |
| 763 if (!source.isNull()) | 754 if (!source.isNull()) |
| 764 m_writer->appendReplacingData(source); | 755 m_writer->appendReplacingData(source); |
| 765 endWriting(m_writer.get()); | 756 endWriting(m_writer.get()); |
| 766 } | 757 } |
| 767 | 758 |
| 768 DEFINE_WEAK_IDENTIFIER_MAP(DocumentLoader); | 759 DEFINE_WEAK_IDENTIFIER_MAP(DocumentLoader); |
| 769 | 760 |
| 770 } // namespace blink | 761 } // namespace blink |
| OLD | NEW |