Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 6660f0c6e9c9e6e921cbcf7d971a9fae05f14541 https://github.com/WebKit/WebKit/commit/6660f0c6e9c9e6e921cbcf7d971a9fae05f14541 Author: Matthew Finkel <sys...@apple.com> Date: 2023-02-13 (Mon, 13 Feb 2023)
Changed paths: M Source/WebCore/loader/EmptyClients.cpp M Source/WebCore/loader/EmptyFrameLoaderClient.h M Source/WebCore/loader/FrameLoader.cpp M Source/WebCore/loader/FrameLoader.h M Source/WebCore/loader/FrameLoaderClient.h M Source/WebCore/loader/FrameLoaderTypes.h M Source/WebCore/platform/network/ResourceErrorBase.h M Source/WebCore/platform/network/cf/ResourceError.h M Source/WebCore/platform/network/curl/ResourceError.h M Source/WebCore/platform/network/mac/ResourceErrorMac.mm M Source/WebCore/platform/network/soup/ResourceError.h M Source/WebKit/Scripts/webkit/messages.py M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp M Source/WebKit/UIProcess/ProvisionalPageProxy.h M Source/WebKit/UIProcess/WebPageProxy.cpp M Source/WebKit/UIProcess/WebPageProxy.h M Source/WebKit/UIProcess/WebPageProxy.messages.in M Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp M Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h M Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h M Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm M Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp M Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h M Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm Log Message: ----------- Add support for HTTPFallback https://bugs.webkit.org/show_bug.cgi?id=248668 rdar://problem/102911054 Reviewed by Chris Dumez. When loading a frame results in a failure because of an error related to establishing a TLS connection, then we may be able to successfully request the resource as HTTP. We attempt this automatic fallback behavior when the HTTPSFirst policy is active and we are not currently attempting HTTPFallback and the request was not itself the result of a HTTP redirect. For example, an allowed fallback case would be: https://site1.example doesn't support TLS, so we fallback to http://site1.example An unsupported fallback case is: https://site1.example supports TLS and redirects to https://site2.example, but https://site2.example doesn't support TLS and we fallback to http://site1.example. Instead, the load fails on https://site2.example. The delegate methods didFailProvisionalLoadForFrame and didFailProvisionalNavigationWithError are not called when we follow this fallback behavior. Covered by API tests. * Source/WebCore/loader/EmptyClients.cpp: (WebCore::EmptyFrameLoaderClient::dispatchDidFailProvisionalLoad): * Source/WebCore/loader/EmptyFrameLoaderClient.h: * Source/WebCore/loader/FrameLoader.cpp: (WebCore::FrameLoader::dispatchDidFailProvisionalLoad): (WebCore::FrameLoader::handleLoadFailureRecovery): (WebCore::FrameLoader::checkLoadCompleteForThisFrame): * Source/WebCore/loader/FrameLoader.h: * Source/WebCore/loader/FrameLoaderClient.h: * Source/WebCore/loader/FrameLoaderTypes.h: * Source/WebCore/platform/network/ResourceErrorBase.h: * Source/WebCore/platform/network/cf/ResourceError.h: * Source/WebCore/platform/network/curl/ResourceError.h: (WebCore::ResourceError::errorRecoveryMethod const): * Source/WebCore/platform/network/mac/ResourceErrorMac.mm: (WebCore::ResourceError::errorRecoveryMethod const): * Source/WebCore/platform/network/soup/ResourceError.h: (WebCore::ResourceError::errorRecoveryMethod const): * Source/WebKit/Scripts/webkit/messages.py: (headers_for_type): * Source/WebKit/UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::cancel): (WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame): * Source/WebKit/UIProcess/ProvisionalPageProxy.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFailProvisionalLoadForFrame): (WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared): * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/WebPageProxy.messages.in: * Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::dispatchDidFailProvisionalLoad): * Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h: * Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h: * Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm: (WebFrameLoaderClient::dispatchDidFailProvisionalLoad): * Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.cpp: (WebFrameLoaderClient::dispatchDidFailProvisionalLoad): * Source/WebKitLegacy/win/WebCoreSupport/WebFrameLoaderClient.h: * Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm: (TEST): Canonical link: https://commits.webkit.org/260213@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes