[webkit-changes] [WebKit/WebKit] 858c12: Use RefPtr and WeakPtr with WebPageProxy in more p...

EWS noreply at github.com
Sat Dec 10 04:03:03 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 858c1233fb2f5c3e4b714915d984d975c961b2da
      https://github.com/WebKit/WebKit/commit/858c1233fb2f5c3e4b714915d984d975c961b2da
  Author: David Kilzer <ddkilzer at apple.com>
  Date:   2022-12-10 (Sat, 10 Dec 2022)

  Changed paths:
    M Source/WebKit/UIProcess/API/APIFrameInfo.cpp
    M Source/WebKit/UIProcess/API/APIFrameInfo.h
    M Source/WebKit/UIProcess/API/C/WKPage.cpp
    M Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp
    M Source/WebKit/UIProcess/Automation/WebAutomationSession.h
    M Source/WebKit/UIProcess/Automation/mac/WebAutomationSessionMac.mm
    M Source/WebKit/UIProcess/Cocoa/WebPasteboardProxyCocoa.mm
    M Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm
    M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
    M Source/WebKit/UIProcess/HighPerformanceGraphicsUsageSampler.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/PerActivityStateCPUUsageSampler.cpp
    M Source/WebKit/UIProcess/PerActivityStateCPUUsageSampler.h
    M Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeDrawingAreaProxyMac.mm
    M Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp
    M Source/WebKit/UIProcess/VisitedLinkStore.cpp
    M Source/WebKit/UIProcess/WebGeolocationManagerProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPermissionControllerProxy.cpp
    M Source/WebKit/UIProcess/WebPermissionControllerProxy.h
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h
    M Source/WebKit/UIProcess/WebURLSchemeTask.cpp
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp

  Log Message:
  -----------
  Use RefPtr and WeakPtr with WebPageProxy in more places
https://bugs.webkit.org/show_bug.cgi?id=248912
<rdar://103087074>

Reviewed by Geoffrey Garen.

Replace uses of raw pointers for WebPageProxy with RefPtr<> and
WeakPtr<>.  Started by addressing a FIXME comment in
WebProcessProxy.h to make WebPageProxyMap use a WeakPtr<>, then
continued pulling "the thread" to change other uses of raw
pointers.

Most changes below are the result of changing a few methods to
return RefPtr<> instead of a raw pointer and to add nullptr
checks.  WebProcessProxy::pages() was changed to return
Vector<RefPtr<>> instead of an iterator since most of the code
used the iterator to create a Vector<RefPtr<>> anyway, or should
have been doing that anyway.

* Source/WebKit/UIProcess/API/APIFrameInfo.cpp:
(API::FrameInfo::create):
(API::FrameInfo::FrameInfo):
* Source/WebKit/UIProcess/API/APIFrameInfo.h:
- Change parameters to take a RefPtr<>&& since the instance
  variable was a RefPtr<>, too.
* Source/WebKit/UIProcess/API/C/WKPage.cpp:
(WKPageCopyRelatedPages):
* Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:
(WebKit::WebAutomationSession::webPageProxyForHandle):
- Change turn return RefPtr<> instead of raw pointer.
(WebKit::WebAutomationSession::getBrowsingContexts):
(WebKit::WebAutomationSession::getBrowsingContext):
(WebKit::WebAutomationSession::closeBrowsingContext):
(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext):
(WebKit::WebAutomationSession::waitForNavigationToComplete):
(WebKit::WebAutomationSession::maximizeWindowOfBrowsingContext):
(WebKit::WebAutomationSession::hideWindowOfBrowsingContext):
(WebKit::WebAutomationSession::navigateBrowsingContext):
(WebKit::WebAutomationSession::goBackInBrowsingContext):
(WebKit::WebAutomationSession::goForwardInBrowsingContext):
(WebKit::WebAutomationSession::reloadBrowsingContext):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::getComputedRole):
(WebKit::WebAutomationSession::getComputedLabel):
(WebKit::WebAutomationSession::selectOptionElement):
(WebKit::WebAutomationSession::isShowingJavaScriptDialog):
(WebKit::WebAutomationSession::dismissCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::acceptCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::messageOfCurrentJavaScriptDialog):
(WebKit::WebAutomationSession::setUserInputForCurrentJavaScriptPrompt):
(WebKit::WebAutomationSession::setFilesForInputFileUpload):
(WebKit::WebAutomationSession::getAllCookies):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::addSingleCookie):
(WebKit::WebAutomationSession::deleteAllCookies):
(WebKit::WebAutomationSession::generateTestReport):
(WebKit::WebAutomationSession::performMouseInteraction):
(WebKit::WebAutomationSession::performKeyboardInteractions):
(WebKit::WebAutomationSession::performInteractionSequence):
(WebKit::WebAutomationSession::cancelInteractionSequence):
(WebKit::WebAutomationSession::takeScreenshot):
* Source/WebKit/UIProcess/Automation/WebAutomationSession.h:
* Source/WebKit/UIProcess/Automation/mac/WebAutomationSessionMac.mm:
(WebKit::WebAutomationSession::inspectBrowsingContext):
* Source/WebKit/UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::accessType const):
(WebKit::WebPasteboardProxy::determineDataOwner const):
* Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::transformHandlesToObjects):
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::didCreateContextForVisibilityPropagation):
(WebKit::GPUProcessProxy::statusBarWasTapped):
* Source/WebKit/UIProcess/HighPerformanceGraphicsUsageSampler.cpp:
(WebKit::HighPerformanceGraphicsUsageSampler::timerFired):
* Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):
(WebKit::NetworkProcessProxy::negotiatedLegacyTLS):
(WebKit::NetworkProcessProxy::didNegotiateModernTLS):
(WebKit::NetworkProcessProxy::triggerBrowsingContextGroupSwitchForNavigation):
(WebKit::NetworkProcessProxy::logDiagnosticMessage):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithResult):
(WebKit::NetworkProcessProxy::logDiagnosticMessageWithValue):
(WebKit::NetworkProcessProxy::resourceLoadDidSendRequest):
(WebKit::NetworkProcessProxy::resourceLoadDidPerformHTTPRedirection):
(WebKit::NetworkProcessProxy::resourceLoadDidReceiveChallenge):
(WebKit::NetworkProcessProxy::resourceLoadDidReceiveResponse):
(WebKit::NetworkProcessProxy::resourceLoadDidCompleteWithError):
(WebKit::NetworkProcessProxy::requestStorageAccessConfirm):
(WebKit::NetworkProcessProxy::didCommitCrossSiteLoadWithDataTransferFromPrevalentResource):
(WebKit::NetworkProcessProxy::testProcessIncomingSyncMessagesWhenWaitingForSyncReply):
* Source/WebKit/UIProcess/PerActivityStateCPUUsageSampler.cpp:
(WebKit::PerActivityStateCPUUsageSampler::loggingTimerFired):
(WebKit::PerActivityStateCPUUsageSampler::pageForLogging const):
- Change turn return RefPtr<> instead of raw pointer.
* Source/WebKit/UIProcess/PerActivityStateCPUUsageSampler.h:
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeDrawingAreaProxyMac.mm:
(WebKit::RemoteLayerTreeDisplayLinkClient::displayLinkFired):
* Source/WebKit/UIProcess/UserContent/WebUserContentControllerProxy.cpp:
(WebKit::WebUserContentControllerProxy::didPostMessage):
* Source/WebKit/UIProcess/VisitedLinkStore.cpp:
(WebKit::VisitedLinkStore::addVisitedLinkHashFromPage):
* Source/WebKit/UIProcess/WebGeolocationManagerProxy.cpp:
(WebKit::WebGeolocationManagerProxy::startUpdatingWithProxy):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::forMostVisibleWebPageIfAny):
(WebKit::WebPageProxy::~WebPageProxy):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::nonEphemeralWebPageProxy):
- Change turn return RefPtr<> instead of raw pointer.
(WebKit::WebPageProxy::createNewPage):
- Avoid a use-after-move by getting WebPageProxy* from
  originatingFrameInfo->page() to call
  page->lastNavigationWasAppInitiated().
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebPermissionControllerProxy.cpp:
(WebKit::WebPermissionControllerProxy::query):
(WebKit::WebPermissionControllerProxy::mostReasonableWebPageProxy const):
- Change turn return RefPtr<> instead of raw pointer.
* Source/WebKit/UIProcess/WebPermissionControllerProxy.h:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::globalPages): Add.
- Implement convenience method in place of calling
  `globalPageMap().values()` and converting to a
  Vector<RefPtr<>> structure.
(WebKit::WebProcessProxy::pages const):
- Move implementation to source file since it requires the full
  class definition of WebPageProxy, and WebProcessProxy.h only
  predeclares WebPageProxy as a class since each class refers to
  the other class.
- Change return type from a value iterator to Vector<RefPtr<>>
  since the code that called this was doing that anyway (or
  should have been doing that).
(WebKit::WebProcessProxy::forWebPagesWithOrigin):
(WebKit::WebProcessProxy::allowedFirstPartiesForCookies):
(WebKit::WebProcessProxy::shouldSendPendingMessage):
(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::webPage):
- Change turn return RefPtr<> instead of raw pointer.
(WebKit::WebProcessProxy::audioCapturingWebPage):
- Change turn return RefPtr<> instead of raw pointer.
(WebKit::WebProcessProxy::notifyPageStatisticsAndDataRecordsProcessed):
(WebKit::WebProcessProxy::notifyWebsiteDataScanForRegistrableDomainsFinished):
(WebKit::WebProcessProxy::notifyWebsiteDataDeletionForRegistrableDomainsFinished):
(WebKit::WebProcessProxy::addExistingWebPage):
(WebKit::WebProcessProxy::removeWebPage):
(WebKit::WebProcessProxy::gpuProcessDidFinishLaunching):
(WebKit::WebProcessProxy::gpuProcessExited):
(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::didBecomeUnresponsive):
(WebKit::WebProcessProxy::didBecomeResponsive):
(WebKit::WebProcessProxy::willChangeIsResponsive):
(WebKit::WebProcessProxy::didChangeIsResponsive):
(WebKit::WebProcessProxy::didFinishLaunching):
(WebKit::WebProcessProxy::didDestroyFrame):
(WebKit::WebProcessProxy::windowServerConnectionStateChanged):
(WebKit::WebProcessProxy::didChangeThrottleState):
(WebKit::WebProcessProxy::updateAudibleMediaAssertions):
(WebKit::WebProcessProxy::logDiagnosticMessageForResourceLimitTermination):
(WebKit::WebProcessProxy::didExceedCPULimit):
(WebKit::WebProcessProxy::createSpeechRecognitionServer):
(WebKit::WebProcessProxy::muteCaptureInPagesExcept):
* Source/WebKit/UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::pages const): Deleted.
* Source/WebKit/UIProcess/WebURLSchemeTask.cpp:
(WebKit::WebURLSchemeTask::willPerformRedirection):
* Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::getAllStorageAccessEntries):

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




More information about the webkit-changes mailing list