Chromium Code Reviews| 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 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 192 case Resource::ImportResource: | 192 case Resource::ImportResource: |
| 193 resource = RawResource::fetchImport(request, fetcher()); | 193 resource = RawResource::fetchImport(request, fetcher()); |
| 194 break; | 194 break; |
| 195 case Resource::Raw: | 195 case Resource::Raw: |
| 196 resource = RawResource::fetch(request, fetcher()); | 196 resource = RawResource::fetch(request, fetcher()); |
| 197 break; | 197 break; |
| 198 default: | 198 default: |
| 199 NOTREACHED(); | 199 NOTREACHED(); |
| 200 } | 200 } |
| 201 | 201 |
| 202 if (resource) | 202 // CSP layout tests verify that preloads are subject to access checks by |
| 203 // seeing if they are in the `preload started` list. Therefore do not add | |
| 204 // them to the list if the load is immediately denied. | |
| 205 if (resource && !resource->resourceError().isAccessCheck()) | |
| 203 fetcher()->preloadStarted(resource); | 206 fetcher()->preloadStarted(resource); |
| 204 return resource; | 207 return resource; |
| 205 } | 208 } |
| 206 | 209 |
| 207 void DocumentLoader::didRedirect(const KURL& oldURL, const KURL& newURL) | 210 void DocumentLoader::didRedirect(const KURL& oldURL, const KURL& newURL) |
| 208 { | 211 { |
| 209 timing().addRedirect(oldURL, newURL); | 212 timing().addRedirect(oldURL, newURL); |
| 210 | 213 |
| 211 // If a redirection happens during a back/forward navigation, don't restore | 214 // If a redirection happens during a back/forward navigation, don't restore |
| 212 // any state from the old HistoryItem. | 215 // any state from the old HistoryItem. |
| (...skipping 442 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 655 // The fetch has already started in the browser. Don't mark it again. | 658 // The fetch has already started in the browser. Don't mark it again. |
| 656 if (!m_frame->settings()->browserSideNavigationEnabled()) { | 659 if (!m_frame->settings()->browserSideNavigationEnabled()) { |
| 657 DCHECK(!timing().fetchStart()); | 660 DCHECK(!timing().fetchStart()); |
| 658 timing().markFetchStart(); | 661 timing().markFetchStart(); |
| 659 } | 662 } |
| 660 | 663 |
| 661 DEFINE_STATIC_LOCAL(ResourceLoaderOptions, mainResourceLoadOptions, | 664 DEFINE_STATIC_LOCAL(ResourceLoaderOptions, mainResourceLoadOptions, |
| 662 (DoNotBufferData, AllowStoredCredentials, ClientRequestedCredentials, Ch eckContentSecurityPolicy, DocumentContext)); | 665 (DoNotBufferData, AllowStoredCredentials, ClientRequestedCredentials, Ch eckContentSecurityPolicy, DocumentContext)); |
| 663 FetchRequest fetchRequest(m_request, FetchInitiatorTypeNames::document, main ResourceLoadOptions); | 666 FetchRequest fetchRequest(m_request, FetchInitiatorTypeNames::document, main ResourceLoadOptions); |
| 664 m_mainResource = RawResource::fetchMainResource(fetchRequest, fetcher(), m_s ubstituteData); | 667 m_mainResource = RawResource::fetchMainResource(fetchRequest, fetcher(), m_s ubstituteData); |
| 665 if (!m_mainResource) { | 668 |
| 669 // PlzNavigate: | |
| 670 // The final access checks are still performed here, potentially rejecting | |
| 671 // the "provisional" load, but the browser side already expects the renderer | |
| 672 // to be able to unconditionally commit. | |
| 673 if (!m_mainResource || (m_frame->settings()->browserSideNavigationEnabled() && m_mainResource->errorOccurred())) { | |
|
engedy
2016/09/30 16:03:15
Nate, this is new, please take a look.
The theore
clamy
2016/10/04 14:49:53
I'm not sure I understand fully: is this needed fo
engedy
2016/10/04 23:11:22
Thanks for clarifying.
And yes -- then the proxim
alexmos
2016/10/05 20:58:52
I ran into similar issues with OOPIFs and CSP bloc
engedy
2016/10/05 23:26:25
Yes, that's my understanding.
alexmos
2016/10/06 00:24:06
Not sure about layout tests for this. On the brow
engedy
2016/10/06 00:32:14
All right, will make mention of this on the bug.
| |
| 666 m_request = ResourceRequest(blankURL()); | 674 m_request = ResourceRequest(blankURL()); |
| 667 maybeLoadEmpty(); | 675 maybeLoadEmpty(); |
| 668 return; | 676 return; |
| 669 } | 677 } |
| 670 // A bunch of headers are set when the underlying resource load begins, and m_request needs to include those. | 678 // A bunch of headers are set when the underlying resource load begins, and m_request needs to include those. |
| 671 // Even when using a cached resource, we may make some modification to the r equest, e.g. adding the referer header. | 679 // Even when using a cached resource, we may make some modification to the r equest, e.g. adding the referer header. |
| 672 m_request = m_mainResource->isLoading() ? m_mainResource->resourceRequest() : fetchRequest.resourceRequest(); | 680 m_request = m_mainResource->isLoading() ? m_mainResource->resourceRequest() : fetchRequest.resourceRequest(); |
| 673 m_mainResource->addClient(this); | 681 m_mainResource->addClient(this); |
| 674 } | 682 } |
| 675 | 683 |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 720 { | 728 { |
| 721 m_writer = createWriterFor(init, mimeType(), m_writer ? m_writer->encoding() : emptyAtom, true, ForceSynchronousParsing); | 729 m_writer = createWriterFor(init, mimeType(), m_writer ? m_writer->encoding() : emptyAtom, true, ForceSynchronousParsing); |
| 722 if (!source.isNull()) | 730 if (!source.isNull()) |
| 723 m_writer->appendReplacingData(source); | 731 m_writer->appendReplacingData(source); |
| 724 endWriting(m_writer.get()); | 732 endWriting(m_writer.get()); |
| 725 } | 733 } |
| 726 | 734 |
| 727 DEFINE_WEAK_IDENTIFIER_MAP(DocumentLoader); | 735 DEFINE_WEAK_IDENTIFIER_MAP(DocumentLoader); |
| 728 | 736 |
| 729 } // namespace blink | 737 } // namespace blink |
| OLD | NEW |