[webkit-changes] [WebKit/WebKit] 355584: Add policy delegate for back/forward navigations

Brady Eidson noreply at github.com
Mon Feb 10 23:13:34 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 3555845f0475627457afa3c7b968e783875f1669
      https://github.com/WebKit/WebKit/commit/3555845f0475627457afa3c7b968e783875f1669
  Author: Brady Eidson <beidson at apple.com>
  Date:   2025-02-10 (Mon, 10 Feb 2025)

  Changed paths:
    M Source/WebCore/loader/EmptyClients.cpp
    M Source/WebCore/loader/EmptyFrameLoaderClient.h
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebCore/loader/HistoryController.cpp
    M Source/WebCore/loader/HistoryController.h
    M Source/WebCore/loader/LocalFrameLoaderClient.h
    M Source/WebKit/UIProcess/API/APINavigationClient.h
    M Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h
    M Source/WebKit/UIProcess/Cocoa/NavigationState.h
    M Source/WebKit/UIProcess/Cocoa/NavigationState.mm
    M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.h
    M Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h
    M Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm

  Log Message:
  -----------
  Add policy delegate for back/forward navigations
rdar://3979539
https://bugs.webkit.org/show_bug.cgi?id=287182

Reviewed by Chris Dumez.

Adds an asynchronous policy delegate for back/forward navigations except for ones
that are required to be synchronous by the web platform.

Do a sync IPC for the policy delegate for those.

* Source/WebCore/loader/EmptyClients.cpp:
(WebCore::EmptyFrameLoaderClient::shouldGoToHistoryItem const):
(WebCore::EmptyFrameLoaderClient::supportsAsyncShouldGoToHistoryItem const):
(WebCore::EmptyFrameLoaderClient::shouldGoToHistoryItemAsync const):
* Source/WebCore/loader/EmptyFrameLoaderClient.h:

* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):

* Source/WebCore/loader/HistoryController.cpp:
(WebCore::HistoryController::ref const):
(WebCore::HistoryController::deref const):
(WebCore::HistoryController::goToItem):
(WebCore::HistoryController::goToItemForNavigationAPI):
(WebCore::HistoryController::goToItemShared):
* Source/WebCore/loader/HistoryController.h:

* Source/WebCore/loader/LocalFrameLoaderClient.h:

* Source/WebKit/UIProcess/API/APINavigationClient.h:
(API::NavigationClient::shouldGoToBackForwardListItem):
(API::NavigationClient::willGoToBackForwardListItem): Deleted.
* Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:

* Source/WebKit/UIProcess/Cocoa/NavigationState.h:
* Source/WebKit/UIProcess/Cocoa/NavigationState.mm:
(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::NavigationClient::shouldGoToBackForwardListItem):
(WebKit::NavigationState::NavigationClient::willGoToBackForwardListItem): Deleted.

* Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::didReceiveMessage):

* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::shouldGoToBackForwardListItem):
(WebKit::WebPageProxy::shouldGoToBackForwardListItemSync):
(WebKit::WebPageProxy::willGoToBackForwardListItem): Deleted.
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:

* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp:
(WebKit::WebLocalFrameLoaderClient::shouldGoToHistoryItem const):
(WebKit::WebLocalFrameLoaderClient::supportsAsyncShouldGoToHistoryItem const):
(WebKit::WebLocalFrameLoaderClient::shouldGoToHistoryItemAsync const):
* Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.h:

* Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.h:
* Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::shouldGoToHistoryItem const):
(WebFrameLoaderClient::supportsAsyncShouldGoToHistoryItem const):
(WebFrameLoaderClient::shouldGoToHistoryItemAsync const):

* Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
(-[BackForwardDelegateWithShouldGo _webView:willGoToBackForwardListItem:inPageCache:]):
(-[BackForwardDelegateWithShouldGo _webView:shouldGoToBackForwardListItem:inPageCache:completionHandler:]):
(-[BackForwardDelegateWithShouldGo webView:didFinishNavigation:]):
(TEST(WKNavigation, ShouldGoToBackForwardListItem)):

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