[webkit-changes] [WebKit/WebKit] ed5c3f: REGRESSION (288518 at main): [ macOS debug wk2 ] http...

Charlie Wolfe noreply at github.com
Mon Jan 13 14:38:06 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ed5c3f45be27b470d7f4091ff74cd0d67047e5c7
      https://github.com/WebKit/WebKit/commit/ed5c3f45be27b470d7f4091ff74cd0d67047e5c7
  Author: Charlie Wolfe <charliew at apple.com>
  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 at 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 at 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 at 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


More information about the webkit-changes mailing list