[webkit-changes] [WebKit/WebKit] 7d88a9: [SwiftUI] Introduce the NavigationDeciding protocol

Richard Robinson noreply at github.com
Fri Dec 6 17:43:03 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7d88a900b0d51f0d827e99ffa15d6b729d0446b7
      https://github.com/WebKit/WebKit/commit/7d88a900b0d51f0d827e99ffa15d6b729d0446b7
  Author: Richard Robinson <richard_robinson2 at apple.com>
  Date:   2024-12-06 (Fri, 06 Dec 2024)

  Changed paths:
    M Source/WebKit/UIProcess/API/Swift/WKNavigationDelegateAdapter.swift
    A Source/WebKit/UIProcess/API/Swift/WebPage+NavigationDeciding.swift
    M Source/WebKit/UIProcess/API/Swift/WebPage+NavigationPreferences.swift
    M Source/WebKit/UIProcess/API/Swift/WebPage.swift
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    A Tools/TestWebKitAPI/Tests/WebKit Swift/Bundle+Extras.swift
    M Tools/TestWebKitAPI/Tests/WebKit Swift/WKWebViewSwiftOverlay.swift
    M Tools/TestWebKitAPI/Tests/WebKit Swift/WebPage.swift

  Log Message:
  -----------
  [SwiftUI] Introduce the NavigationDeciding protocol
https://bugs.webkit.org/show_bug.cgi?id=283805
rdar://140672055

Reviewed by Wenson Hsieh.

This protocol is designed to provide the subset of functionality of WKNavigationDelegate for making navigation
decisions and responding to authentication challenges.

The exception is `webView(_:authenticationChallenge:shouldAllowDeprecatedTLS:)`, which is intentionally excluded
as its functionality is effectively deprecated.

* Source/WebKit/UIProcess/API/Swift/WKNavigationDelegateAdapter.swift:
(WKNavigationDelegateAdapter.webView(_:decidePolicyFor:preferences:WKWebpagePreferences:)):
(WKNavigationDelegateAdapter.webView(_:decidePolicyFor:)):
(WKNavigationDelegateAdapter.webView(_:respondTo:URLCredential:)):
* Source/WebKit/UIProcess/API/Swift/WebPage+FrameInfo.swift: Added.
(FrameInfo.isMainFrame):
(FrameInfo.request):
(FrameInfo.securityOrigin):
(FrameInfo.wrapped):
* Source/WebKit/UIProcess/API/Swift/WebPage+NavigationDeciding.swift: Added.
(NavigationAction.source):
(NavigationAction.target):
(NavigationAction.navigationType):
(NavigationAction.request):
(NavigationAction.shouldPerformDownload):
(NavigationAction.buttonNumber):
(NavigationAction.modifierFlags):
(NavigationAction.wrapped):
(NavigationResponse.isForMainFrame):
(NavigationResponse.response):
(NavigationResponse.canShowMimeType):
(NavigationResponse.wrapped):
(NavigationDeciding.decidePolicy(for:preferences:)):
(NavigationDeciding.decidePolicy(for:)):
(NavigationDeciding.decideAuthenticationChallengeDisposition(for:URLCredential:)):
* Source/WebKit/UIProcess/API/Swift/WebPage+NavigationPreferences.swift: Added.
(preferredContentMode):
(allowsContentJavaScript):
(preferredHTTPSNavigationPolicy):
(isLockdownModeEnabled):
* Source/WebKit/UIProcess/API/Swift/WebPage.swift:
(WebPage_v0.callAsyncJavaScript(_:arguments:in:contentWorld:)):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* Tools/TestWebKitAPI/Tests/WebKit Swift/Bundle+Extras.swift: Added.
(Bundle.testResources):
* Tools/TestWebKitAPI/Tests/WebKit Swift/WKWebViewSwiftOverlay.swift:
* Tools/TestWebKitAPI/Tests/WebKit Swift/WebPage.swift:
(TestNavigationDecider.preferencesMutation):
(TestNavigationDecider.decidePolicy(for:preferences:)):
(TestNavigationDecider.decidePolicy(for:)):
(WebPageTests.decidePolicyForNavigationActionFragment):
(WebPageTests.navigationPreferencesMutationDuringNavigation):
(WebPageTests.decidePolicyForNavigationResponse):

Canonical link: https://commits.webkit.org/287483@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