From 6138f16f5f19831d761f1a85b350eb020d67f0f4 Mon Sep 17 00:00:00 2001 From: Chris Dumez Date: Sat, 1 Apr 2023 12:38:53 -0700 Subject: [PATCH] Fix some errors reported by cppcheck https://bugs.webkit.org/show_bug.cgi?id=254853 Reviewed by Darin Adler. Fix some errors reported by cppcheck: ``` Source/WTF/wtf/text/SymbolImpl.cpp:41:30: error: Signed integer overflow for expression '1<<31'. [integerOverflow] s_nextHashForSymbol |= 1 << 31; ^ Source/WebCore/editing/ReplaceSelectionCommand.cpp:1750:12: error: Reference to local variable returned. [returnReference] return list; ^ Source/WebCore/platform/graphics/HEVCUtilities.cpp:441:12: error: Uninitialized struct member: parameters.codec [uninitStructMember] return parameters; ^ Source/WebCore/testing/Internals.cpp:2988:32: warning: Possible null pointer dereference: window [nullPointer] auto frontendWindowProxy = window->open(*window, *window, url, emptyAtom(), emptyString()).releaseReturnValue(); ^ Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp:91:12: error: Reference to local variable returned. [returnReference] return downloadProxy; ``` * Source/WTF/wtf/text/SymbolImpl.cpp: (WTF::SymbolImpl::nextHashForSymbol): * Source/WebCore/css/parser/CSSPropertyParser.cpp: (WebCore::cssValueKeywordID): * Source/WebCore/editing/ReplaceSelectionCommand.cpp: (WebCore::deepestSingleChildList): (WebCore::ReplaceSelectionCommand::insertAsListItems): * Source/WebCore/platform/graphics/HEVCUtilities.h: * Source/WebCore/testing/Internals.cpp: (WebCore::Internals::openDummyInspectorFrontend): * Source/WebKit/UIProcess/API/glib/WebKitNetworkSession.cpp: (webkit_network_session_download_uri): * Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp: * Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp: (WebKit::DownloadProxyMap::createDownloadProxy): * Source/WebKit/UIProcess/Downloads/DownloadProxyMap.h: * Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::createDownloadProxy): * Source/WebKit/UIProcess/Network/NetworkProcessProxy.h: * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::receivedPolicyDecision): (WebKit::WebPageProxy::resumeDownload): (WebKit::WebPageProxy::downloadRequest): (WebKit::WebPageProxy::contextMenuItemSelected): * Source/WebKit/UIProcess/WebProcessPool.cpp: (WebKit::WebProcessPool::download): (WebKit::WebProcessPool::resumeDownload): (WebKit::WebProcessPool::createDownloadProxy): * Source/WebKit/UIProcess/WebProcessPool.h: * Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::createDownloadProxy): * Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h: Canonical link: https://commits.webkit.org/262483@main --- Source/WTF/wtf/text/SymbolImpl.cpp | 2 +- .../WebCore/css/parser/CSSPropertyParser.cpp | 2 ++ .../editing/ReplaceSelectionCommand.cpp | 4 ++-- .../WebCore/platform/graphics/HEVCUtilities.h | 2 +- Source/WebCore/testing/Internals.cpp | 8 ++++++- .../API/glib/WebKitNetworkSession.cpp | 4 ++-- .../UIProcess/API/glib/WebKitWebContext.cpp | 6 ++--- .../UIProcess/API/glib/WebKitWebView.cpp | 6 ++--- .../UIProcess/Downloads/DownloadProxyMap.cpp | 2 +- .../UIProcess/Downloads/DownloadProxyMap.h | 2 +- .../UIProcess/Network/NetworkProcessProxy.cpp | 3 ++- .../UIProcess/Network/NetworkProcessProxy.h | 2 +- Source/WebKit/UIProcess/WebPageProxy.cpp | 24 +++++++++---------- Source/WebKit/UIProcess/WebProcessPool.cpp | 10 ++++---- Source/WebKit/UIProcess/WebProcessPool.h | 6 ++--- .../WebsiteData/WebsiteDataStore.cpp | 2 +- .../UIProcess/WebsiteData/WebsiteDataStore.h | 2 +- 17 files changed, 48 insertions(+), 39 deletions(-) diff --git a/Source/WTF/wtf/text/SymbolImpl.cpp b/Source/WTF/wtf/text/SymbolImpl.cpp index eade0164bf02..baa39f38a68c 100644 --- a/Source/WTF/wtf/text/SymbolImpl.cpp +++ b/Source/WTF/wtf/text/SymbolImpl.cpp @@ -38,7 +38,7 @@ unsigned SymbolImpl::nextHashForSymbol() { static unsigned s_nextHashForSymbol = 0; s_nextHashForSymbol += 1 << s_flagCount; - s_nextHashForSymbol |= 1 << 31; + s_nextHashForSymbol |= 1u << 31; return s_nextHashForSymbol; } diff --git a/Source/WebCore/css/parser/CSSPropertyParser.cpp b/Source/WebCore/css/parser/CSSPropertyParser.cpp index 0ef83c343842..1b7039fdf58b 100644 --- a/Source/WebCore/css/parser/CSSPropertyParser.cpp +++ b/Source/WebCore/css/parser/CSSPropertyParser.cpp @@ -105,6 +105,8 @@ static bool isAppleLegacyCSSValueKeyword(const char* characters, unsigned length template static CSSValueID cssValueKeywordID(const CharacterType* characters, unsigned length) { + ASSERT(length > 0); // Otherwise buffer[0] would access uninitialized memory below. + char buffer[maxCSSValueKeywordLength + 1]; // 1 to turn "apple" into "webkit" for (unsigned i = 0; i != length; ++i) { diff --git a/Source/WebCore/editing/ReplaceSelectionCommand.cpp b/Source/WebCore/editing/ReplaceSelectionCommand.cpp index f8fca629cb1d..4685cec60ea0 100644 --- a/Source/WebCore/editing/ReplaceSelectionCommand.cpp +++ b/Source/WebCore/editing/ReplaceSelectionCommand.cpp @@ -1742,7 +1742,7 @@ static HTMLElement* singleChildList(HTMLElement& element) return isListHTMLElement(child.get()) ? &downcast(*child) : nullptr; } -static HTMLElement& deepestSingleChildList(HTMLElement& topLevelList) +static Ref deepestSingleChildList(HTMLElement& topLevelList) { Ref list { topLevelList }; while (auto childList = singleChildList(list)) @@ -1754,7 +1754,7 @@ static HTMLElement& deepestSingleChildList(HTMLElement& topLevelList) // we put the list items into the existing list. Node* ReplaceSelectionCommand::insertAsListItems(HTMLElement& passedListElement, Node* insertionBlock, const Position& insertPos, InsertedNodes& insertedNodes) { - Ref listElement = deepestSingleChildList(passedListElement); + Ref listElement = deepestSingleChildList(passedListElement); bool isStart = isStartOfParagraph(insertPos); bool isEnd = isEndOfParagraph(insertPos); diff --git a/Source/WebCore/platform/graphics/HEVCUtilities.h b/Source/WebCore/platform/graphics/HEVCUtilities.h index 8bfb39178f11..22b24e1f0bfa 100644 --- a/Source/WebCore/platform/graphics/HEVCUtilities.h +++ b/Source/WebCore/platform/graphics/HEVCUtilities.h @@ -59,7 +59,7 @@ WEBCORE_EXPORT std::optional parseHEVCDecoderConfigurationRecord WEBCORE_EXPORT String createHEVCCodecParametersString(const HEVCParameters&); struct DoViParameters { - enum class Codec { AVC1, AVC3, HEV1, HVC1 } codec; + enum class Codec { AVC1, AVC3, HEV1, HVC1 } codec { Codec::HVC1 }; uint16_t bitstreamProfileID { 0 }; uint16_t bitstreamLevelID { 0 }; }; diff --git a/Source/WebCore/testing/Internals.cpp b/Source/WebCore/testing/Internals.cpp index dfbfe4e27b70..d7d6f21ee3bb 100644 --- a/Source/WebCore/testing/Internals.cpp +++ b/Source/WebCore/testing/Internals.cpp @@ -2984,7 +2984,13 @@ RefPtr Internals::openDummyInspectorFrontend(const String& url) { auto* inspectedPage = contextDocument()->frame()->page(); auto* localMainFrame = dynamicDowncast(inspectedPage->mainFrame()); - auto* window = localMainFrame ? localMainFrame->document()->domWindow() : nullptr; + if (!localMainFrame) + return nullptr; + + auto* window = localMainFrame->document()->domWindow(); + if (!window) + return nullptr; + auto frontendWindowProxy = window->open(*window, *window, url, emptyAtom(), emptyString()).releaseReturnValue(); m_inspectorFrontend = makeUnique(*inspectedPage, downcast(frontendWindowProxy->window())); return frontendWindowProxy; diff --git a/Source/WebKit/UIProcess/API/glib/WebKitNetworkSession.cpp b/Source/WebKit/UIProcess/API/glib/WebKitNetworkSession.cpp index 940bdf777cde..914e377e3693 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitNetworkSession.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitNetworkSession.cpp @@ -648,9 +648,9 @@ WebKitDownload* webkit_network_session_download_uri(WebKitNetworkSession* sessio WebCore::ResourceRequest request(String::fromUTF8(uri)); auto& websiteDataStore = webkitWebsiteDataManagerGetDataStore(session->priv->websiteDataManager.get()); - auto& downloadProxy = websiteDataStore.createDownloadProxy(adoptRef(*new API::DownloadClient), request, nullptr, { }); + auto downloadProxy = websiteDataStore.createDownloadProxy(adoptRef(*new API::DownloadClient), request, nullptr, { }); auto download = webkitDownloadCreate(downloadProxy); - downloadProxy.setDidStartCallback([session = GRefPtr { session }, download = download.get()](auto* downloadProxy) { + downloadProxy->setDidStartCallback([session = GRefPtr { session }, download = download.get()](auto* downloadProxy) { if (!downloadProxy) return; diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp index 44784336025d..e1715db53e7e 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp @@ -1079,9 +1079,9 @@ WebKitDownload* webkit_web_context_download_uri(WebKitWebContext* context, const WebCore::ResourceRequest request(String::fromUTF8(uri)); auto& websiteDataStore = webkitWebsiteDataManagerGetDataStore(context->priv->websiteDataManager.get()); - auto& downloadProxy = context->priv->processPool->download(websiteDataStore, nullptr, request); - auto download = webkitDownloadCreate(downloadProxy); - downloadProxy.setDidStartCallback([context = GRefPtr { context }, download = download.get()](auto* downloadProxy) { + auto downloadProxy = context->priv->processPool->download(websiteDataStore, nullptr, request); + auto download = webkitDownloadCreate(downloadProxy.get()); + downloadProxy->setDidStartCallback([context = GRefPtr { context }, download = download.get()](auto* downloadProxy) { if (!downloadProxy) return; diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp index d5a261631ab6..2c610552c453 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp @@ -4784,12 +4784,12 @@ WebKitDownload* webkit_web_view_download_uri(WebKitWebView* webView, const char* g_return_val_if_fail(uri, nullptr); auto& page = getPage(webView); - auto& downloadProxy = page.process().processPool().download(page.websiteDataStore(), &page, ResourceRequest { String::fromUTF8(uri) }); + auto downloadProxy = page.process().processPool().download(page.websiteDataStore(), &page, ResourceRequest { String::fromUTF8(uri) }); auto download = webkitDownloadCreate(downloadProxy, webView); #if ENABLE(2022_GLIB_API) - downloadProxy.setDidStartCallback([session = GRefPtr { webView->priv->networkSession }, download = download.get()](auto* downloadProxy) { + downloadProxy->setDidStartCallback([session = GRefPtr { webView->priv->networkSession }, download = download.get()](auto* downloadProxy) { #else - downloadProxy.setDidStartCallback([context = GRefPtr { webView->priv->context }, download = download.get()](auto* downloadProxy) { + downloadProxy->setDidStartCallback([context = GRefPtr { webView->priv->context }, download = download.get()](auto* downloadProxy) { #endif if (!downloadProxy) return; diff --git a/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp b/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp index 82e506b57675..635617ef1e0c 100644 --- a/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp +++ b/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp @@ -69,7 +69,7 @@ void DownloadProxyMap::platformDestroy() } #endif -DownloadProxy& DownloadProxyMap::createDownloadProxy(WebsiteDataStore& dataStore, Ref&& client, const WebCore::ResourceRequest& resourceRequest, const FrameInfoData& frameInfo, WebPageProxy* originatingPage) +Ref DownloadProxyMap::createDownloadProxy(WebsiteDataStore& dataStore, Ref&& client, const WebCore::ResourceRequest& resourceRequest, const FrameInfoData& frameInfo, WebPageProxy* originatingPage) { auto downloadProxy = DownloadProxy::create(*this, dataStore, WTFMove(client), resourceRequest, frameInfo, originatingPage); m_downloads.set(downloadProxy->downloadID(), downloadProxy.copyRef()); diff --git a/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.h b/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.h index 2ef9400981a3..e519a1178bd8 100644 --- a/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.h +++ b/Source/WebKit/UIProcess/Downloads/DownloadProxyMap.h @@ -60,7 +60,7 @@ class DownloadProxyMap : public CanMakeWeakPtr { explicit DownloadProxyMap(NetworkProcessProxy&); ~DownloadProxyMap(); - DownloadProxy& createDownloadProxy(WebsiteDataStore&, Ref&&, const WebCore::ResourceRequest&, const FrameInfoData&, WebPageProxy* originatingPage); + Ref createDownloadProxy(WebsiteDataStore&, Ref&&, const WebCore::ResourceRequest&, const FrameInfoData&, WebPageProxy* originatingPage); void downloadFinished(DownloadProxy&); bool isEmpty() const { return m_downloads.isEmpty(); } diff --git a/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp b/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp index 9f58da723144..8e2dcc53e06d 100644 --- a/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp +++ b/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp @@ -35,6 +35,7 @@ #include "AuthenticationChallengeProxy.h" #include "AuthenticationManager.h" #include "BackgroundFetchState.h" +#include "DownloadProxy.h" #include "DownloadProxyMap.h" #include "DownloadProxyMessages.h" #include "FrameInfoData.h" @@ -336,7 +337,7 @@ void NetworkProcessProxy::synthesizeAppIsBackground(bool background) applicationWillEnterForeground(); } -DownloadProxy& NetworkProcessProxy::createDownloadProxy(WebsiteDataStore& dataStore, Ref&& client, const ResourceRequest& resourceRequest, const FrameInfoData& frameInfo, WebPageProxy* originatingPage) +Ref NetworkProcessProxy::createDownloadProxy(WebsiteDataStore& dataStore, Ref&& client, const ResourceRequest& resourceRequest, const FrameInfoData& frameInfo, WebPageProxy* originatingPage) { if (!m_downloadProxyMap) m_downloadProxyMap = makeUnique(*this); diff --git a/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h b/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h index 8cbef4458ba5..f823eaf040a7 100644 --- a/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h +++ b/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h @@ -127,7 +127,7 @@ class NetworkProcessProxy final : public AuxiliaryProcessProxy, private ProcessT void getNetworkProcessConnection(WebProcessProxy&, CompletionHandler&&); - DownloadProxy& createDownloadProxy(WebsiteDataStore&, Ref&&, const WebCore::ResourceRequest&, const FrameInfoData&, WebPageProxy* originatingPage); + Ref createDownloadProxy(WebsiteDataStore&, Ref&&, const WebCore::ResourceRequest&, const FrameInfoData&, WebPageProxy* originatingPage); void dataTaskWithRequest(WebPageProxy&, PAL::SessionID, WebCore::ResourceRequest&&, CompletionHandler&&); void fetchWebsiteData(PAL::SessionID, OptionSet, OptionSet, CompletionHandler&&); diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp index 468ce3a5a16f..a8b947c7845b 100644 --- a/Source/WebKit/UIProcess/WebPageProxy.cpp +++ b/Source/WebKit/UIProcess/WebPageProxy.cpp @@ -3760,8 +3760,8 @@ void WebPageProxy::receivedPolicyDecision(PolicyAction action, API::Navigation* std::optional downloadID; if (action == PolicyAction::Download) { // Create a download proxy. - auto& download = m_process->processPool().createDownloadProxy(m_websiteDataStore, m_decidePolicyForResponseRequest, this, navigation ? navigation->originatingFrameInfo() : FrameInfoData { }); - download.setDidStartCallback([this, weakThis = WeakPtr { *this }, navigationActionOrResponse = WTFMove(navigationActionOrResponse)] (auto* downloadProxy) { + auto download = m_process->processPool().createDownloadProxy(m_websiteDataStore, m_decidePolicyForResponseRequest, this, navigation ? navigation->originatingFrameInfo() : FrameInfoData { }); + download->setDidStartCallback([this, weakThis = WeakPtr { *this }, navigationActionOrResponse = WTFMove(navigationActionOrResponse)] (auto* downloadProxy) { if (!weakThis || !downloadProxy) return; WTF::switchOn(navigationActionOrResponse, @@ -3775,11 +3775,11 @@ void WebPageProxy::receivedPolicyDecision(PolicyAction action, API::Navigation* ); }); if (navigation) { - download.setWasUserInitiated(navigation->wasUserInitiated()); - download.setRedirectChain(navigation->takeRedirectChain()); + download->setWasUserInitiated(navigation->wasUserInitiated()); + download->setRedirectChain(navigation->takeRedirectChain()); } - downloadID = download.downloadID(); + downloadID = download->downloadID(); m_decidePolicyForResponseRequest = { }; } @@ -6879,15 +6879,15 @@ void WebPageProxy::setMayStartMediaWhenInWindow(bool mayStartMedia) void WebPageProxy::resumeDownload(const API::Data& resumeData, const String& path, CompletionHandler&& completionHandler) { - auto& download = process().processPool().resumeDownload(websiteDataStore(), this, resumeData, path, CallDownloadDidStart::Yes); - download.setDestinationFilename(path); - download.setDidStartCallback(WTFMove(completionHandler)); + auto download = process().processPool().resumeDownload(websiteDataStore(), this, resumeData, path, CallDownloadDidStart::Yes); + download->setDestinationFilename(path); + download->setDidStartCallback(WTFMove(completionHandler)); } void WebPageProxy::downloadRequest(WebCore::ResourceRequest&& request, CompletionHandler&& completionHandler) { - auto& download = process().processPool().download(websiteDataStore(), this, request, { }); - download.setDidStartCallback(WTFMove(completionHandler)); + auto download = process().processPool().download(websiteDataStore(), this, request, { }); + download->setDidStartCallback(WTFMove(completionHandler)); } void WebPageProxy::dataTaskWithRequest(WebCore::ResourceRequest&& request, CompletionHandler&& completionHandler) @@ -7591,8 +7591,8 @@ void WebPageProxy::contextMenuItemSelected(const WebContextMenuItemData& item) } if (downloadInfo) { - auto& download = m_process->processPool().download(m_websiteDataStore, this, URL { downloadInfo->url }, downloadInfo->suggestedFilename); - download.setDidStartCallback([this, weakThis = WeakPtr { *this }] (auto* download) { + auto download = m_process->processPool().download(m_websiteDataStore, this, URL { downloadInfo->url }, downloadInfo->suggestedFilename); + download->setDidStartCallback([this, weakThis = WeakPtr { *this }] (auto* download) { if (!weakThis || !download) return; m_navigationClient->contextMenuDidCreateDownload(*this, *download); diff --git a/Source/WebKit/UIProcess/WebProcessPool.cpp b/Source/WebKit/UIProcess/WebProcessPool.cpp index ca0d34ecbeda..6bda4a8a3e22 100644 --- a/Source/WebKit/UIProcess/WebProcessPool.cpp +++ b/Source/WebKit/UIProcess/WebProcessPool.cpp @@ -1189,16 +1189,16 @@ bool WebProcessPool::hasPagesUsingWebsiteDataStore(WebsiteDataStore& dataStore) return m_sessionToPageIDsMap.contains(dataStore.sessionID()); } -DownloadProxy& WebProcessPool::download(WebsiteDataStore& dataStore, WebPageProxy* initiatingPage, const ResourceRequest& request, const String& suggestedFilename) +Ref WebProcessPool::download(WebsiteDataStore& dataStore, WebPageProxy* initiatingPage, const ResourceRequest& request, const String& suggestedFilename) { - auto& downloadProxy = createDownloadProxy(dataStore, request, initiatingPage, { }); + auto downloadProxy = createDownloadProxy(dataStore, request, initiatingPage, { }); dataStore.download(downloadProxy, suggestedFilename); return downloadProxy; } -DownloadProxy& WebProcessPool::resumeDownload(WebsiteDataStore& dataStore, WebPageProxy* initiatingPage, const API::Data& resumeData, const String& path, CallDownloadDidStart callDownloadDidStart) +Ref WebProcessPool::resumeDownload(WebsiteDataStore& dataStore, WebPageProxy* initiatingPage, const API::Data& resumeData, const String& path, CallDownloadDidStart callDownloadDidStart) { - auto& downloadProxy = createDownloadProxy(dataStore, ResourceRequest(), initiatingPage, { }); + auto downloadProxy = createDownloadProxy(dataStore, ResourceRequest(), initiatingPage, { }); dataStore.resumeDownload(downloadProxy, resumeData, path, callDownloadDidStart); return downloadProxy; } @@ -1411,7 +1411,7 @@ void WebProcessPool::setDefaultRequestTimeoutInterval(double timeoutInterval) sendToAllProcesses(Messages::WebProcess::SetDefaultRequestTimeoutInterval(timeoutInterval)); } -DownloadProxy& WebProcessPool::createDownloadProxy(WebsiteDataStore& dataStore, const ResourceRequest& request, WebPageProxy* originatingPage, const FrameInfoData& frameInfo) +Ref WebProcessPool::createDownloadProxy(WebsiteDataStore& dataStore, const ResourceRequest& request, WebPageProxy* originatingPage, const FrameInfoData& frameInfo) { auto client = m_legacyDownloadClient ? Ref(*m_legacyDownloadClient) : adoptRef(*new API::DownloadClient); return dataStore.createDownloadProxy(WTFMove(client), request, originatingPage, frameInfo); diff --git a/Source/WebKit/UIProcess/WebProcessPool.h b/Source/WebKit/UIProcess/WebProcessPool.h index df72164326e6..3b3ab98a3b8b 100644 --- a/Source/WebKit/UIProcess/WebProcessPool.h +++ b/Source/WebKit/UIProcess/WebProcessPool.h @@ -219,8 +219,8 @@ class WebProcessPool final const String& injectedBundlePath() const { return m_configuration->injectedBundlePath(); } - DownloadProxy& download(WebsiteDataStore&, WebPageProxy* initiatingPage, const WebCore::ResourceRequest&, const String& suggestedFilename = { }); - DownloadProxy& resumeDownload(WebsiteDataStore&, WebPageProxy* initiatingPage, const API::Data& resumeData, const String& path, CallDownloadDidStart); + Ref download(WebsiteDataStore&, WebPageProxy* initiatingPage, const WebCore::ResourceRequest&, const String& suggestedFilename = { }); + Ref resumeDownload(WebsiteDataStore&, WebPageProxy* initiatingPage, const API::Data& resumeData, const String& path, CallDownloadDidStart); void setInjectedBundleInitializationUserData(RefPtr&& userData) { m_injectedBundleInitializationUserData = WTFMove(userData); } @@ -287,7 +287,7 @@ class WebProcessPool final void setEnhancedAccessibility(bool); // Downloads. - DownloadProxy& createDownloadProxy(WebsiteDataStore&, const WebCore::ResourceRequest&, WebPageProxy* originatingPage, const FrameInfoData&); + Ref createDownloadProxy(WebsiteDataStore&, const WebCore::ResourceRequest&, WebPageProxy* originatingPage, const FrameInfoData&); API::LegacyContextHistoryClient& historyClient() { return *m_historyClient; } WebContextClient& client() { return m_client; } diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp index 3b0d3f1a0d1f..3a4a5f08fc38 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp @@ -2349,7 +2349,7 @@ void WebsiteDataStore::setEmulatedConditions(std::optional&& bytesPerSe #endif // ENABLE(INSPECTOR_NETWORK_THROTTLING) -DownloadProxy& WebsiteDataStore::createDownloadProxy(Ref&& client, const WebCore::ResourceRequest& request, WebPageProxy* originatingPage, const FrameInfoData& frameInfo) +Ref WebsiteDataStore::createDownloadProxy(Ref&& client, const WebCore::ResourceRequest& request, WebPageProxy* originatingPage, const FrameInfoData& frameInfo) { return networkProcess().createDownloadProxy(*this, WTFMove(client), request, frameInfo, originatingPage); } diff --git a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h index 44a80c63cc36..05a50bcc992c 100644 --- a/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h +++ b/Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h @@ -438,7 +438,7 @@ class WebsiteDataStore : public API::ObjectImpl&&, const WebCore::ResourceRequest&, WebPageProxy* originatingPage, const FrameInfoData&); + Ref createDownloadProxy(Ref&&, const WebCore::ResourceRequest&, WebPageProxy* originatingPage, const FrameInfoData&); void download(const DownloadProxy&, const String& suggestedFilename); void resumeDownload(const DownloadProxy&, const API::Data&, const String& path, CallDownloadDidStart);