[webkit-changes] [WebKit/WebKit] cbed04: Perform HTTP fallback in UIProcess and after redirect

Commit Queue noreply at github.com
Wed Sep 4 09:24:27 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: cbed04cca06ff94b8b5fb316c54df7e143969ce0
      https://github.com/WebKit/WebKit/commit/cbed04cca06ff94b8b5fb316c54df7e143969ce0
  Author: Matthew Finkel <m_finkel at apple.com>
  Date:   2024-09-04 (Wed, 04 Sep 2024)

  Changed paths:
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm

  Log Message:
  -----------
  Perform HTTP fallback in UIProcess and after redirect
https://bugs.webkit.org/show_bug.cgi?id=279048
rdar://133794636

Reviewed by Alex Christensen.

HTTP fallback is currently handled in FrameLoader, but that causes problems
with PSON (and eventually will cause problems with site isolation). In
particular, there are currently bad interactions with cross-site redirects and
HTTP fallback. This change moves the controlling logic out of FrameLoader
into WebPageProxy::didiFailProvisionLoad where the load is re-initiated.

This change also allows falling back to HTTP after a redirect. Preventing
fallback after a redirect was overly restrictive and caused some site breakage.
Instead, we restrict this fallback to requests that were optimistically
upgraded.

Finally, WKNavigation.HTTPSFirstWithHTTPRedirect is adding coverage with
HTTPSFirst for how we behave when we fallback to HTTP after upgrading and
following multiple redirects. This is similar to an existing test we already
have for HTTPSOnly.

* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::handleLoadFailureRecovery): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
(TEST(WKNavigation, HTTPSFirstHTTPDowngradeAfterPSON)):
(TEST(WKNavigation, HTTPSFirstWithHTTPRedirect)):

Canonical link: https://commits.webkit.org/283158@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list