[webkit-changes] [WebKit/WebKit] def02c: Replace WebCore::notifyHistoryItemChanged with a p...

Alex Christensen noreply at github.com
Mon Sep 11 01:32:32 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: def02cb5c4c24ed8a05e4e5075eb6ec95216ef80
      https://github.com/WebKit/WebKit/commit/def02cb5c4c24ed8a05e4e5075eb6ec95216ef80
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2023-09-11 (Mon, 11 Sep 2023)

  Changed paths:
    M Source/WebCore/history/HistoryItem.cpp
    M Source/WebCore/history/HistoryItem.h
    M Source/WebCore/loader/EmptyClients.cpp
    M Source/WebCore/loader/HistoryController.cpp
    M Source/WebCore/loader/HistoryController.h
    M Source/WebCore/page/Page.cpp
    M Source/WebCore/page/Page.h
    M Source/WebCore/page/PageConfiguration.cpp
    M Source/WebCore/page/PageConfiguration.h
    M Source/WebKit/Sources.txt
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.h
    M Source/WebKit/WebProcess/WebPage/MomentumEventDispatcher.cpp
    M Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp
    A Source/WebKit/WebProcess/WebPage/WebHistoryItemClient.cpp
    A Source/WebKit/WebProcess/WebPage/WebHistoryItemClient.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj
    M Source/WebKitLegacy/mac/History/WebHistoryItem.mm
    M Source/WebKitLegacy/mac/History/WebHistoryItemInternal.h
    A Source/WebKitLegacy/mac/WebCoreSupport/LegacyHistoryItemClient.h
    A Source/WebKitLegacy/mac/WebCoreSupport/LegacyHistoryItemClient.mm
    M Source/WebKitLegacy/mac/WebView/WebFrameView.mm
    M Source/WebKitLegacy/mac/WebView/WebView.mm

  Log Message:
  -----------
  Replace WebCore::notifyHistoryItemChanged with a proper client callback
https://bugs.webkit.org/show_bug.cgi?id=261223
rdar://115072660

Reviewed by Chris Dumez.

Using a process-global function pointer with little context doesn't allow us to manage state and scope very well.
A client object does.

* Source/WebCore/history/HistoryItem.cpp:
(WebCore::HistoryItem::HistoryItem):
(WebCore::m_client):
(WebCore::HistoryItem::notifyChanged):
(WebCore::defaultNotifyHistoryItemChanged): Deleted.
(WebCore::m_identifier): Deleted.
* Source/WebCore/history/HistoryItem.h:
(WebCore::HistoryItem::create):
* Source/WebCore/loader/EmptyClients.cpp:
(WebCore::pageConfigurationWithEmptyClients):
* Source/WebCore/loader/HistoryController.cpp:
(WebCore::FrameLoader::HistoryController::updateForRedirectWithLockedBackForwardList):
(WebCore::FrameLoader::HistoryController::createItem):
(WebCore::FrameLoader::HistoryController::createItemTree):
(WebCore::FrameLoader::HistoryController::updateBackForwardListClippedAtTarget):
(WebCore::FrameLoader::HistoryController::pushState):
* Source/WebCore/loader/HistoryController.h:
* Source/WebCore/page/Page.cpp:
(WebCore::m_historyItemClient):
(WebCore::m_badgeClient): Deleted.
* Source/WebCore/page/Page.h:
(WebCore::Page::historyItemClient):
* Source/WebCore/page/PageConfiguration.cpp:
(WebCore::PageConfiguration::PageConfiguration):
* Source/WebCore/page/PageConfiguration.h:
* Source/WebKit/Sources.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.cpp:
(WebKit::applyFrameState):
(WebKit::toHistoryItem):
* Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.h:
* Source/WebKit/WebProcess/WebPage/HistoryItemClient.cpp: Copied from Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.h.
(WebKit::HistoryItemClient::ignoreChangesForScope):
(WebKit::HistoryItemClient::historyItemChanged):
* Source/WebKit/WebProcess/WebPage/HistoryItemClient.h: Copied from Source/WebKit/WebProcess/WebCoreSupport/SessionStateConversion.h.
(WebKit::HistoryItemClient::create):
* Source/WebKit/WebProcess/WebPage/MomentumEventDispatcher.cpp:
* Source/WebKit/WebProcess/WebPage/WebBackForwardListProxy.cpp:
(WebKit::WebBackForwardListProxy::WebBackForwardListProxy):
(WebKit::WK2NotifyHistoryItemChanged): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::m_historyItemClient):
(WebKit::WebPage::restoreSessionInternal):
(WebKit::WebPage::setCurrentHistoryItemForReattach):
(WebKit::m_appHighlightsVisible): Deleted.
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKitLegacy/mac/History/WebHistoryItem.mm:
(WKNotifyHistoryItemChanged):
(GlobalHistoryItemClient::create):
(GlobalHistoryItemClient::historyItemChanged):
(globalHistoryItemClient):
(-[WebHistoryItem init]):
(-[WebHistoryItem initWithURLString:title:lastVisitedTimeInterval:]):
(-[WebHistoryItem initWithURLString:title:displayTitle:lastVisitedTimeInterval:]):
(-[WebHistoryItem initWithWebCoreHistoryItem:]):
* Source/WebKitLegacy/mac/History/WebHistoryItemInternal.h:
* Source/WebKitLegacy/mac/WebView/WebFrameView.mm:
(-[WebFrameView initWithFrame:]):
* Source/WebKitLegacy/mac/WebView/WebView.mm:
(LegacyHistoryItemClient::create):
(LegacyHistoryItemClient::historyItemChanged):
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

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




More information about the webkit-changes mailing list