[webkit-changes] [WebKit/WebKit] b341e0: Improve support for prioritized HTTPS navigations
Matthew Finkel
noreply at github.com
Wed Mar 1 13:25:38 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b341e0e6cedf800fa1e1a8afed4544cdd0000c27
https://github.com/WebKit/WebKit/commit/b341e0e6cedf800fa1e1a8afed4544cdd0000c27
Author: Matthew Finkel <sysrqb at apple.com>
Date: 2023-03-01 (Wed, 01 Mar 2023)
Changed paths:
M Source/WebCore/en.lproj/Localizable.strings
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/ResourceLoader.cpp
M Source/WebCore/loader/ResourceLoader.h
M Source/WebCore/page/csp/ContentSecurityPolicy.cpp
M Source/WebCore/platform/network/mac/ResourceErrorMac.mm
M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm
M Source/WebKit/Shared/API/APIError.h
M Source/WebKit/Shared/WebErrors.cpp
M Source/WebKit/Shared/WebErrors.h
M Source/WebKit/UIProcess/API/Cocoa/WKErrorPrivate.h
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 Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm
Log Message:
-----------
Improve support for prioritized HTTPS navigations
https://bugs.webkit.org/show_bug.cgi?id=248968
rdar://problem/103140804
Reviewed by Alex Christensen.
In this patch we improve the HTTPSOnly behavior that was introduced in an
earlier change. This patch makes three changes:
1. Upgrade main frame navigations except when the navigation is same-site and
HTTPSOnly is was disabled on this site
2. Upgrade navigation redirects and prevent trivial downgrade redirect loops
3. Reduces the timeout on the data task on cocoa platforms
We also introduce a new HTTPSUpgradeRedirectLoop error to support handling
upgrade-downgrade loops.
* Source/WebCore/en.lproj/Localizable.strings:
* Source/WebCore/loader/EmptyClients.cpp:
(WebCore::EmptyFrameLoaderClient::httpsUpgradeRedirectLoopError const):
* Source/WebCore/loader/EmptyFrameLoaderClient.h:
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::upgradeRequestforHTTPSOnlyIfNeeded const):
(WebCore::FrameLoader::changeLocation):
* Source/WebCore/loader/FrameLoader.h:
* Source/WebCore/loader/FrameLoaderClient.h:
* Source/WebCore/loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willSendRequestInternal):
(WebCore::ResourceLoader::httpsUpgradeRedirectLoopError):
* Source/WebCore/loader/ResourceLoader.h:
* Source/WebCore/page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::upgradeInsecureRequestIfNeeded const):
* Source/WebCore/platform/network/mac/ResourceErrorMac.mm:
(WebCore::ResourceError::errorRecoveryMethod const):
* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
* Source/WebKit/Shared/API/APIError.h:
* Source/WebKit/Shared/WebErrors.cpp:
(WebKit::httpsUpgradeRedirectLoopError):
* Source/WebKit/Shared/WebErrors.h:
* Source/WebKit/UIProcess/API/Cocoa/WKErrorPrivate.h:
* Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::httpsUpgradeRedirectLoopError const):
* Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
* Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h:
* Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::httpsUpgradeRedirectLoopError const):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
(TEST):
Canonical link: https://commits.webkit.org/261022@main
More information about the webkit-changes
mailing list