Skip to content

Commit

Permalink
Use CheckedRef in Provisional[Frame|Page]Proxy for Web[Frame|Page]Proxy
Browse files Browse the repository at this point in the history
https://bugs.webkit.org/show_bug.cgi?id=255572

Reviewed by Alex Christensen and Chris Dumez.

So that we don't store raw pointers, we should use CheckedRef where
applicable.

* Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp:
(WebKit::ProvisionalFrameProxy::ProvisionalFrameProxy):
(WebKit::ProvisionalFrameProxy::~ProvisionalFrameProxy):
(WebKit::ProvisionalFrameProxy::didReceiveMessage):
(WebKit::ProvisionalFrameProxy::messageSenderDestinationID const):
* Source/WebKit/UIProcess/ProvisionalFrameProxy.h:
* Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::~ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::processDidTerminate):
(WebKit::ProvisionalPageProxy::initializeWebPage):
(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):
(WebKit::ProvisionalPageProxy::goToBackForwardItem):
(WebKit::ProvisionalPageProxy::didCreateMainFrame):
(WebKit::ProvisionalPageProxy::didPerformClientRedirect):
(WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::didCommitLoadForFrame):
(WebKit::ProvisionalPageProxy::didNavigateWithNavigationData):
(WebKit::ProvisionalPageProxy::didChangeProvisionalURLForFrame):
(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::ProvisionalPageProxy::decidePolicyForResponse):
(WebKit::ProvisionalPageProxy::didPerformServerRedirect):
(WebKit::ProvisionalPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::startURLSchemeTask):
(WebKit::ProvisionalPageProxy::backForwardGoToItem):
(WebKit::ProvisionalPageProxy::decidePolicyForNavigationActionSync):
(WebKit::ProvisionalPageProxy::logDiagnosticMessageFromWebProcess):
(WebKit::ProvisionalPageProxy::logDiagnosticMessageWithEnhancedPrivacyFromWebProcess):
(WebKit::ProvisionalPageProxy::logDiagnosticMessageWithValueDictionaryFromWebProcess):
(WebKit::ProvisionalPageProxy::backForwardAddItem):
(WebKit::ProvisionalPageProxy::requestPasswordForQuickLookDocumentInMainFrame):
(WebKit::ProvisionalPageProxy::contentFilterDidBlockLoadForFrame):
(WebKit::ProvisionalPageProxy::didReceiveMessage):
(WebKit::ProvisionalPageProxy::didReceiveSyncMessage):
* Source/WebKit/UIProcess/ProvisionalPageProxy.h:
(WebKit::ProvisionalPageProxy::page):
(WebKit::ProvisionalPageProxy::page const):
* Source/WebKit/UIProcess/WebFrameProxy.h:
* Source/WebKit/UIProcess/WebPageProxy.h:

Canonical link: https://commits.webkit.org/263066@main
  • Loading branch information
chirags27 committed Apr 18, 2023
1 parent ab6bfe0 commit 3905321
Show file tree
Hide file tree
Showing 6 changed files with 57 additions and 55 deletions.
12 changes: 6 additions & 6 deletions Source/WebKit/UIProcess/ProvisionalFrameProxy.cpp
Expand Up @@ -59,10 +59,10 @@ ProvisionalFrameProxy::ProvisionalFrameProxy(WebFrameProxy& frame, Ref<WebProces
{
m_process->markProcessAsRecentlyUsed();
m_process->addProvisionalFrameProxy(*this);
m_process->addMessageReceiver(Messages::WebFrameProxy::messageReceiverName(), m_frame.frameID().object(), *this);
m_process->addMessageReceiver(Messages::WebFrameProxy::messageReceiverName(), frame.frameID().object(), *this);

ASSERT(m_frame.page());
auto& page = *m_frame.page();
ASSERT(frame.page());
auto& page = *frame.page();
auto* drawingArea = page.drawingArea();
ASSERT(drawingArea);

Expand Down Expand Up @@ -104,14 +104,14 @@ ProvisionalFrameProxy::ProvisionalFrameProxy(WebFrameProxy& frame, Ref<WebProces

ProvisionalFrameProxy::~ProvisionalFrameProxy()
{
m_process->removeMessageReceiver(Messages::WebFrameProxy::messageReceiverName(), m_frame.frameID().object());
m_process->removeMessageReceiver(Messages::WebFrameProxy::messageReceiverName(), m_frame->frameID().object());
m_process->removeVisitedLinkStoreUser(m_visitedLinkStore.get(), m_webPageID);
m_process->removeProvisionalFrameProxy(*this);
}

void ProvisionalFrameProxy::didReceiveMessage(IPC::Connection& connection, IPC::Decoder& decoder)
{
if (auto* page = m_frame.page())
if (auto* page = m_frame->page())
page->didReceiveMessage(connection, decoder);
}

Expand All @@ -123,7 +123,7 @@ IPC::Connection* ProvisionalFrameProxy::messageSenderConnection() const
uint64_t ProvisionalFrameProxy::messageSenderDestinationID() const
{
// FIXME: This identifier was generated in another process and can collide with identifiers in this frame's process.
return m_frame.frameID().object().toUInt64();
return m_frame->frameID().object().toUInt64();
}

}
2 changes: 1 addition & 1 deletion Source/WebKit/UIProcess/ProvisionalFrameProxy.h
Expand Up @@ -68,7 +68,7 @@ class ProvisionalFrameProxy : public IPC::MessageReceiver, public IPC::MessageSe
IPC::Connection* messageSenderConnection() const final;
uint64_t messageSenderDestinationID() const final;

WebFrameProxy& m_frame;
CheckedRef<WebFrameProxy> m_frame;
Ref<WebProcessProxy> m_process;
Ref<VisitedLinkStore> m_visitedLinkStore;
WebCore::PageIdentifier m_pageID;
Expand Down

0 comments on commit 3905321

Please sign in to comment.