Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: eb3b8a3eb27175faecc4ec397acec2804c5199a9
      
https://github.com/WebKit/WebKit/commit/eb3b8a3eb27175faecc4ec397acec2804c5199a9
  Author: Charlie Wolfe <[email protected]>
  Date:   2026-07-28 (Tue, 28 Jul 2026)

  Changed paths:
    M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp
    M Source/WebKit/UIProcess/ProvisionalPageProxy.h
    M Source/WebKit/UIProcess/WebBackForwardList.cpp
    M Source/WebKit/UIProcess/WebBackForwardList.h
    M Source/WebKit/UIProcess/WebBackForwardList.messages.in
    M Source/WebKit/UIProcess/WebBackForwardList.swift
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp

  Log Message:
  -----------
  Make `BackForwardGoToItem` asynchronous
https://bugs.webkit.org/show_bug.cgi?id=320430
rdar://183391902

Reviewed by Alex Christensen.

HistoryController::goToItem blocks the web process on BackForwardGoToItem in 
order to move the
UIProcess's back/forward cursor before the load commits. This no longer needs 
to be synchronous. The
only reply payload is WebBackForwardListCounts, used to refresh 
WebBackForwardListProxy's cached
counts — but WebBackForwardList::goToItem already ends in 
didChangeBackForwardList(), which
broadcasts InvalidateBackForwardListCache to every web content process, so the 
cache is invalidated
regardless of the reply.

* Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::backForwardGoToItem):
(WebKit::ProvisionalPageProxy::didReceiveMessage):
(WebKit::ProvisionalPageProxy::didReceiveSyncMessage):
* Source/WebKit/UIProcess/ProvisionalPageProxy.h:
* Source/WebKit/UIProcess/WebBackForwardList.cpp:
(WebKit::WebBackForwardList::backForwardGoToItem):
(WebKit::WebBackForwardList::backForwardGoToItemShared):
* Source/WebKit/UIProcess/WebBackForwardList.h:
* Source/WebKit/UIProcess/WebBackForwardList.messages.in:
* Source/WebKit/UIProcess/WebBackForwardList.swift:
(MakeAPIArray.backForwardGoToItem(_:)):
(MakeAPIArray.backForwardGoToItemShared(_:)):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::backForwardGoToItemShared):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::goToItem):

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



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

Reply via email to