Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ed5c3f45be27b470d7f4091ff74cd0d67047e5c7
      
https://github.com/WebKit/WebKit/commit/ed5c3f45be27b470d7f4091ff74cd0d67047e5c7
  Author: Charlie Wolfe <[email protected]>
  Date:   2025-01-13 (Mon, 13 Jan 2025)

  Changed paths:
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WebCore/history/HistoryItem.cpp
    M Source/WebCore/history/HistoryItem.h
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebCore/loader/HistoryController.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    M Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp

  Log Message:
  -----------
  REGRESSION (288518@main): [ macOS debug wk2 ] 
http/tests/navigation/forward-and-cancel.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=285627
rdar://142570786

Reviewed by Alex Christensen.

In 285421@main, I replaced a synchronous WCP -> UIP message with an async 
message,
BackForwardClearProvisionalItem. Previously, when sending the sync message, we 
also updated the
back/forward list counts cached in the web process. The new async message did 
not.

In 288518@main, I made a change to always commit uncanceled provisional history 
items. This revealed an
issue caused by the original change, where the non-provisional index had been 
coincidentally correct
after clearing the provisional item, causing the cached back/forward list 
counts to also be correct.

To restore original behavior, revert the message to sync and update the cached 
list counts. Also,
reintroduce isTargetItem to HistoryItem to avoid sending synchronous messages 
in cases where they were
not previously sent.

* LayoutTests/platform/mac-wk2/TestExpectations:
* Source/WebCore/history/HistoryItem.cpp:
(WebCore::HistoryItem::reset):
(WebCore::HistoryItem::setChildItem):
* Source/WebCore/history/HistoryItem.h:
(WebCore::HistoryItem::isTargetItem const):
(WebCore::HistoryItem::setIsTargetItem):
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
* Source/WebCore/loader/HistoryController.cpp:
(WebCore::HistoryController::createItemTree):
(WebCore::HistoryController::updateCurrentItem):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::backForwardClearProvisionalItem):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.messages.in:
* Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::clearProvisionalItem):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to