[webkit-changes] [WebKit/WebKit] 16a1e5: Make FrameLoader ref-counted
Chris Dumez
noreply at github.com
Thu Oct 3 18:58:27 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 16a1e589946b35b125b6f0d06fe7ba88ad48608f
https://github.com/WebKit/WebKit/commit/16a1e589946b35b125b6f0d06fe7ba88ad48608f
Author: Chris Dumez <cdumez at apple.com>
Date: 2024-10-03 (Thu, 03 Oct 2024)
Changed paths:
M Source/WebCore/bindings/js/ScriptController.cpp
M Source/WebCore/dom/Document.cpp
M Source/WebCore/dom/DocumentFontLoader.cpp
M Source/WebCore/dom/EventDispatcher.cpp
M Source/WebCore/history/BackForwardCache.cpp
M Source/WebCore/history/CachedFrame.cpp
M Source/WebCore/history/CachedPage.cpp
M Source/WebCore/html/HTMLAnchorElement.cpp
M Source/WebCore/html/HTMLPlugInImageElement.cpp
M Source/WebCore/html/MediaDocument.cpp
M Source/WebCore/loader/CrossOriginPreflightChecker.cpp
M Source/WebCore/loader/DocumentLoader.cpp
M Source/WebCore/loader/DocumentLoader.h
M Source/WebCore/loader/DocumentThreadableLoader.cpp
M Source/WebCore/loader/DocumentWriter.cpp
M Source/WebCore/loader/FrameLoader.cpp
M Source/WebCore/loader/FrameLoader.h
M Source/WebCore/loader/HistoryController.cpp
M Source/WebCore/loader/LinkLoader.cpp
M Source/WebCore/loader/MediaResourceLoader.cpp
M Source/WebCore/loader/MixedContentChecker.cpp
M Source/WebCore/loader/NavigationScheduler.cpp
M Source/WebCore/loader/NetscapePlugInStreamLoader.cpp
M Source/WebCore/loader/PingLoader.cpp
M Source/WebCore/loader/PolicyChecker.cpp
M Source/WebCore/loader/ProgressTracker.cpp
M Source/WebCore/loader/ResourceLoadNotifier.cpp
M Source/WebCore/loader/ResourceLoader.cpp
M Source/WebCore/loader/ResourceLoader.h
M Source/WebCore/loader/SubframeLoader.cpp
M Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp
M Source/WebCore/loader/cache/CachedResource.cpp
M Source/WebCore/loader/cache/CachedResourceLoader.cpp
M Source/WebCore/loader/mac/ResourceLoaderMac.mm
M Source/WebCore/mathml/MathMLElement.cpp
M Source/WebCore/page/Chrome.cpp
M Source/WebCore/page/ContextMenuController.cpp
M Source/WebCore/page/DOMWindow.cpp
M Source/WebCore/page/DOMWindowExtension.cpp
M Source/WebCore/page/DragController.cpp
M Source/WebCore/page/EventHandler.cpp
M Source/WebCore/page/LocalDOMWindow.cpp
M Source/WebCore/page/LocalFrame.cpp
M Source/WebCore/page/LocalFrame.h
M Source/WebCore/page/Navigation.cpp
M Source/WebCore/page/Page.cpp
M Source/WebCore/page/ios/EventHandlerIOS.mm
M Source/WebCore/svg/SVGAElement.cpp
M Source/WebCore/svg/graphics/SVGImage.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebLocalFrameLoaderClient.cpp
Log Message:
-----------
Make FrameLoader ref-counted
https://bugs.webkit.org/show_bug.cgi?id=280855
Reviewed by Ryosuke Niwa.
Make FrameLoader ref-counted, by forwarding the ref-counting to its owning frame.
* Source/WebCore/bindings/js/ScriptController.cpp:
(WebCore::ScriptController::initScriptForWindowProxy):
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::removeVisualUpdatePreventedReasons):
(WebCore::Document::open):
(WebCore::Document::implicitClose):
(WebCore::Document::userAgent const):
(WebCore::Document::processMetaHttpEquiv):
(WebCore::Document::finishedParsing):
(WebCore::Document::loadEventDelayTimerFired):
(WebCore::Document::checkCompleted):
(WebCore::Document::decrementActiveParserCount):
* Source/WebCore/dom/DocumentFontLoader.cpp:
(WebCore::DocumentFontLoader::fontLoadingTimerFired):
* Source/WebCore/dom/EventDispatcher.cpp:
(WebCore::shouldSuppressEventDispatchInDOM):
* Source/WebCore/history/BackForwardCache.cpp:
(WebCore::canCacheFrame):
(WebCore::BackForwardCache::trySuspendPage):
* Source/WebCore/history/CachedFrame.cpp:
(WebCore::CachedFrame::CachedFrame):
(WebCore::CachedFrame::open):
(WebCore::CachedFrame::destroy):
* Source/WebCore/history/CachedPage.cpp:
(WebCore::CachedPage::restore):
* Source/WebCore/html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::handleClick):
* Source/WebCore/html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::requestObject):
* Source/WebCore/html/MediaDocument.cpp:
(WebCore::MediaDocumentParser::createDocumentStructure):
* Source/WebCore/loader/CrossOriginPreflightChecker.cpp:
(WebCore::CrossOriginPreflightChecker::doPreflight):
* Source/WebCore/loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::protectedFrameLoader const):
(WebCore::DocumentLoader::setRequest):
(WebCore::DocumentLoader::setMainDocumentError):
(WebCore::DocumentLoader::mainReceivedError):
(WebCore::DocumentLoader::stopLoading):
(WebCore::DocumentLoader::commitIfReady):
(WebCore::DocumentLoader::notifyFinished):
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::doCrossOriginOpenerHandlingOfResponse):
(WebCore::DocumentLoader::tryLoadingSubstituteData):
(WebCore::DocumentLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied):
(WebCore::DocumentLoader::responseReceived):
(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::DocumentLoader::commitLoad):
(WebCore::DocumentLoader::interruptedForPolicyChangeError const):
(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::dataReceived):
(WebCore::DocumentLoader::setupForReplace):
(WebCore::DocumentLoader::clearMainResourceLoader):
(WebCore::DocumentLoader::isLoadingInAPISense const):
(WebCore::DocumentLoader::setTitle):
(WebCore::DocumentLoader::removeSubresourceLoader):
(WebCore::DocumentLoader::maybeLoadEmpty):
(WebCore::DocumentLoader::startLoadingMainResource):
(WebCore::DocumentLoader::loadMainResource):
(WebCore::DocumentLoader::cancelPolicyCheckIfNeeded):
(WebCore::DocumentLoader::cancelMainResourceLoad):
(WebCore::DocumentLoader::maybeFinishLoadingMultipartContent):
(WebCore::DocumentLoader::handleProvisionalLoadFailureFromContentFilter):
(WebCore::DocumentLoader::handleContentFilterDidBlock):
(WebCore::DocumentLoader::checkedFrameLoader const): Deleted.
* Source/WebCore/loader/DocumentLoader.h:
* Source/WebCore/loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::loadRequest):
* Source/WebCore/loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocumentWithResultOfExecutingJavascriptURL):
(WebCore::DocumentWriter::createDocument):
(WebCore::DocumentWriter::begin):
* Source/WebCore/loader/FrameLoader.cpp:
(WebCore::FrameLoader::ref const):
(WebCore::FrameLoader::deref const):
(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::completed):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::stopForBackForwardCache):
(WebCore::FrameLoader::provisionalLoadFailedInAnotherProcess):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::closeOldDataSources):
(WebCore::FrameLoader::subframeIsLoading const):
(WebCore::FrameLoader::detachChildren):
(WebCore::FrameLoader::checkLoadComplete):
(WebCore::FrameLoader::detachFromParent):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::shouldClose):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
* Source/WebCore/loader/FrameLoader.h:
* Source/WebCore/loader/HistoryController.cpp:
(WebCore::HistoryController::saveScrollPositionAndViewStateToItem):
(WebCore::HistoryController::restoreScrollPositionAndViewState):
(WebCore::HistoryController::saveDocumentState):
(WebCore::HistoryController::goToItem):
(WebCore::HistoryController::updateForStandardLoad):
(WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
(WebCore::HistoryController::updateForCommit):
(WebCore::HistoryController::updateForSameDocumentNavigation):
(WebCore::HistoryController::recursiveGoToItem):
(WebCore::HistoryController::pushState):
(WebCore::HistoryController::replaceState):
* Source/WebCore/loader/LinkLoader.cpp:
(WebCore::LinkLoader::preconnectIfNeeded):
(WebCore::LinkLoader::loadLink):
* Source/WebCore/loader/MediaResourceLoader.cpp:
(WebCore::MediaResourceLoader::sendH2Ping):
* Source/WebCore/loader/MixedContentChecker.cpp:
(WebCore::frameAndAncestorsCanDisplayInsecureContent):
(WebCore::MixedContentChecker::frameAndAncestorsCanRunInsecureContent):
(WebCore::MixedContentChecker::checkFormForMixedContent):
* Source/WebCore/loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::scheduleLocationChange):
(WebCore::NavigationScheduler::schedule):
* Source/WebCore/loader/NetscapePlugInStreamLoader.cpp:
(WebCore::NetscapePlugInStreamLoader::didReceiveResponse):
* Source/WebCore/loader/PingLoader.cpp:
(WebCore::PingLoader::loadImage):
(WebCore::PingLoader::sendPing):
(WebCore::PingLoader::sendViolationReport):
(WebCore::PingLoader::startPingLoad):
* Source/WebCore/loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):
(WebCore::PolicyChecker::checkNewWindowPolicy):
(WebCore::PolicyChecker::stopCheck):
(WebCore::PolicyChecker::cannotShowMIMEType):
(WebCore::PolicyChecker::handleUnimplementablePolicy):
* Source/WebCore/loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::progressStarted):
(WebCore::ProgressTracker::finalProgressComplete):
(WebCore::ProgressTracker::progressHeartbeatTimerFired):
* Source/WebCore/loader/ResourceLoadNotifier.cpp:
(WebCore::ResourceLoadNotifier::didReceiveAuthenticationChallenge):
(WebCore::ResourceLoadNotifier::willSendRequest):
(WebCore::ResourceLoadNotifier::didFailToLoad):
(WebCore::ResourceLoadNotifier::assignIdentifierToInitialRequest):
(WebCore::ResourceLoadNotifier::dispatchWillSendRequest):
(WebCore::ResourceLoadNotifier::dispatchDidReceiveResponse):
(WebCore::ResourceLoadNotifier::dispatchDidReceiveData):
(WebCore::ResourceLoadNotifier::dispatchDidFinishLoading):
(WebCore::ResourceLoadNotifier::dispatchDidFailLoading):
* Source/WebCore/loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::protectedFrameLoader const):
(WebCore::ResourceLoader::willSendRequestInternal):
(WebCore::ResourceLoader::didReceiveResponse):
(WebCore::ResourceLoader::didReceiveBuffer):
(WebCore::ResourceLoader::didFinishLoadingOnePart):
(WebCore::ResourceLoader::cleanupForError):
(WebCore::ResourceLoader::cancelledError):
(WebCore::ResourceLoader::blockedError):
(WebCore::ResourceLoader::blockedByContentBlockerError):
(WebCore::ResourceLoader::cannotShowURLError):
(WebCore::ResourceLoader::httpsUpgradeRedirectLoopError):
(WebCore::ResourceLoader::shouldUseCredentialStorage):
(WebCore::ResourceLoader::didReceiveAuthenticationChallenge):
(WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpace):
(WebCore::ResourceLoader::connectionProperties):
(WebCore::ResourceLoader::checkedFrameLoader const): Deleted.
* Source/WebCore/loader/ResourceLoader.h:
* Source/WebCore/loader/SubframeLoader.cpp:
(WebCore::FrameLoader::SubframeLoader::createFrameIfNecessary):
(WebCore::FrameLoader::SubframeLoader::loadSubframe):
(WebCore::FrameLoader::SubframeLoader::shouldUsePlugin):
* Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::didFailLoadingManifest):
* Source/WebCore/loader/cache/CachedResource.cpp:
(WebCore::CachedResource::load):
* Source/WebCore/loader/cache/CachedResourceLoader.cpp:
(WebCore::shouldPerformHTTPSUpgrade):
(WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):
(WebCore::CachedResourceLoader::updateHTTPRequestHeaders):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::cachePolicy const):
(WebCore::CachedResourceLoader::loadDone):
* Source/WebCore/loader/mac/ResourceLoaderMac.mm:
(WebCore::ResourceLoader::willCacheResponseAsync):
* Source/WebCore/mathml/MathMLElement.cpp:
(WebCore::MathMLElement::defaultEventHandler):
* Source/WebCore/page/Chrome.cpp:
(WebCore::Chrome::mouseDidMoveOverElement):
* Source/WebCore/page/ContextMenuController.cpp:
(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
* Source/WebCore/page/DOMWindow.cpp:
(WebCore::DOMWindow::close):
* Source/WebCore/page/DOMWindowExtension.cpp:
(WebCore::DOMWindowExtension::suspendForBackForwardCache):
(WebCore::DOMWindowExtension::resumeFromBackForwardCache):
(WebCore::DOMWindowExtension::willDestroyGlobalObjectInCachedFrame):
(WebCore::DOMWindowExtension::willDestroyGlobalObjectInFrame):
(WebCore::DOMWindowExtension::willDetachGlobalObjectFromFrame):
* Source/WebCore/page/DragController.cpp:
(WebCore::DragController::performDragOperation):
* Source/WebCore/page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::internalKeyEvent):
* Source/WebCore/page/LocalDOMWindow.cpp:
(WebCore::LocalDOMWindow::dispatchAllPendingBeforeUnloadEvents):
(WebCore::LocalDOMWindow::stop):
(WebCore::LocalDOMWindow::setName):
(WebCore::LocalDOMWindow::dispatchLoadEvent):
(WebCore::LocalDOMWindow::open):
* Source/WebCore/page/LocalFrame.cpp:
(WebCore::LocalFrame::init):
(WebCore::LocalFrame::~LocalFrame):
(WebCore::LocalFrame::setView):
(WebCore::LocalFrame::setDocument):
(WebCore::LocalFrame::frameDetached):
(WebCore::LocalFrame::preventsParentFromBeingComplete const):
(WebCore::LocalFrame::changeLocation):
(WebCore::LocalFrame::didFinishLoadInAnotherProcess):
(WebCore::LocalFrame::injectUserScriptImmediately):
(WebCore::LocalFrame::protectedLoader const):
(WebCore::LocalFrame::protectedLoader):
(WebCore::LocalFrame::willDetachPage):
(WebCore::LocalFrame::documentURLDidChange):
(WebCore::LocalFrame::didAccessWindowProxyPropertyViaOpener):
(WebCore::LocalFrame::checkedLoader const): Deleted.
(WebCore::LocalFrame::checkedLoader): Deleted.
* Source/WebCore/page/LocalFrame.h:
* Source/WebCore/page/Navigation.cpp:
(WebCore::Navigation::reload):
* Source/WebCore/page/Page.cpp:
(WebCore::Page::goToItem):
(WebCore::Page::setDefersLoading):
(WebCore::Page::updateRendering):
(WebCore::Page::setMemoryCacheClientCallsEnabled):
(WebCore::Page::addRelevantRepaintedObject):
(WebCore::Page::injectUserStyleSheet):
(WebCore::Page::setupForRemoteWorker):
* Source/WebCore/page/ios/EventHandlerIOS.mm:
(WebCore::EventHandler::mouseDown):
* Source/WebCore/svg/SVGAElement.cpp:
(WebCore::SVGAElement::defaultEventHandler):
* Source/WebCore/svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
Canonical link: https://commits.webkit.org/284652@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