Diff
Modified: trunk/Source/WebCore/PAL/ChangeLog (290658 => 290659)
--- trunk/Source/WebCore/PAL/ChangeLog 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebCore/PAL/ChangeLog 2022-03-01 18:43:58 UTC (rev 290659)
@@ -1,3 +1,12 @@
+2022-03-01 Alex Christensen <[email protected]>
+
+ If the main resource was loaded over private relay, load all sub resources over private relay
+ https://bugs.webkit.org/show_bug.cgi?id=237296
+
+ Reviewed by Geoffrey Garen.
+
+ * pal/spi/cf/CFNetworkSPI.h:
+
2022-02-24 Devin Rousso <[email protected]>
REGRESSION(r290436): fix build failures
Modified: trunk/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h (290658 => 290659)
--- trunk/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.h 2022-03-01 18:43:58 UTC (rev 290659)
@@ -506,4 +506,8 @@
- (void)_sendCloseCode:(NSURLSessionWebSocketCloseCode)closeCode reason:(NSData *)reason;
@end
+@interface NSMutableURLRequest (Staging_88972294)
+@property (setter=_setPrivacyProxyFailClosedForUnreachableNonMainHosts:) BOOL _privacyProxyFailClosedForUnreachableNonMainHosts;
+@end
+
#endif // defined(__OBJC__)
Modified: trunk/Source/WebKit/ChangeLog (290658 => 290659)
--- trunk/Source/WebKit/ChangeLog 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/ChangeLog 2022-03-01 18:43:58 UTC (rev 290659)
@@ -1,3 +1,37 @@
+2022-03-01 Alex Christensen <[email protected]>
+
+ If the main resource was loaded over private relay, load all sub resources over private relay
+ https://bugs.webkit.org/show_bug.cgi?id=237296
+
+ Reviewed by Geoffrey Garen.
+
+ I manually verified that this fixes rdar://88965550 when using the CFNetwork change in the related bug.
+
+ * NetworkProcess/NetworkConnectionToWebProcess.cpp:
+ (WebKit::NetworkConnectionToWebProcess::createSocketChannel):
+ * NetworkProcess/NetworkConnectionToWebProcess.h:
+ * NetworkProcess/NetworkConnectionToWebProcess.messages.in:
+ * NetworkProcess/NetworkResourceLoader.cpp:
+ (WebKit::NetworkResourceLoader::transferToNewWebProcess):
+ (WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
+ * NetworkProcess/NetworkSession.cpp:
+ (WebKit::NetworkSession::createWebSocketTask):
+ * NetworkProcess/NetworkSession.h:
+ * NetworkProcess/NetworkSocketChannel.cpp:
+ (WebKit::NetworkSocketChannel::create):
+ (WebKit::NetworkSocketChannel::NetworkSocketChannel):
+ * NetworkProcess/NetworkSocketChannel.h:
+ * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
+ (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
+ * NetworkProcess/cocoa/NetworkSessionCocoa.h:
+ * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
+ (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
+ (WebKit::NetworkSessionCocoa::createWebSocketTask):
+ * WebProcess/Network/WebLoaderStrategy.cpp:
+ (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
+ * WebProcess/Network/WebSocketChannel.cpp:
+ (WebKit::WebSocketChannel::connect):
+
2022-03-01 Jer Noble <[email protected]>
[Cocoa] Allow logging to be configured by NSDefaults (without regressing launch time)
Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (290658 => 290659)
--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp 2022-03-01 18:43:58 UTC (rev 290659)
@@ -491,10 +491,10 @@
m_networkSocketStreams.add(identifier, NetworkSocketStream::create(m_networkProcess.get(), WTFMove(url), m_sessionID, cachePartition, identifier, m_connection, WTFMove(token), acceptInsecureCertificates));
}
-void NetworkConnectionToWebProcess::createSocketChannel(const ResourceRequest& request, const String& protocol, WebSocketIdentifier identifier, WebPageProxyIdentifier webPageProxyID, const ClientOrigin& clientOrigin)
+void NetworkConnectionToWebProcess::createSocketChannel(const ResourceRequest& request, const String& protocol, WebSocketIdentifier identifier, WebPageProxyIdentifier webPageProxyID, const ClientOrigin& clientOrigin, bool hadMainFrameMainResourcePrivateRelayed)
{
ASSERT(!m_networkSocketChannels.contains(identifier));
- if (auto channel = NetworkSocketChannel::create(*this, m_sessionID, request, protocol, identifier, webPageProxyID, clientOrigin))
+ if (auto channel = NetworkSocketChannel::create(*this, m_sessionID, request, protocol, identifier, webPageProxyID, clientOrigin, hadMainFrameMainResourcePrivateRelayed))
m_networkSocketChannels.add(identifier, WTFMove(channel));
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h (290658 => 290659)
--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h 2022-03-01 18:43:58 UTC (rev 290659)
@@ -95,6 +95,8 @@
class WebSharedWorkerServerConnection;
class WebSharedWorkerServerToContextConnection;
+enum class PrivateRelayed : bool;
+
namespace NetworkCache {
struct DataKey;
}
@@ -255,7 +257,7 @@
void createSocketStream(URL&&, String cachePartition, WebCore::WebSocketIdentifier);
- void createSocketChannel(const WebCore::ResourceRequest&, const String& protocol, WebCore::WebSocketIdentifier, WebPageProxyIdentifier, const WebCore::ClientOrigin&);
+ void createSocketChannel(const WebCore::ResourceRequest&, const String& protocol, WebCore::WebSocketIdentifier, WebPageProxyIdentifier, const WebCore::ClientOrigin&, bool hadMainFrameMainResourcePrivateRelayed);
void updateQuotaBasedOnSpaceUsageForTesting(const WebCore::ClientOrigin&);
void establishSharedWorkerServerConnection();
Modified: trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in (290658 => 290659)
--- trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in 2022-03-01 18:43:58 UTC (rev 290659)
@@ -62,7 +62,7 @@
SetCaptureExtraNetworkLoadMetricsEnabled(bool enabled)
CreateSocketStream(URL url, String cachePartition, WebCore::WebSocketIdentifier identifier)
- CreateSocketChannel(WebCore::ResourceRequest request, String protocol, WebCore::WebSocketIdentifier identifier, WebKit::WebPageProxyIdentifier webPageProxyID, struct WebCore::ClientOrigin clientOrigin)
+ CreateSocketChannel(WebCore::ResourceRequest request, String protocol, WebCore::WebSocketIdentifier identifier, WebKit::WebPageProxyIdentifier webPageProxyID, struct WebCore::ClientOrigin clientOrigin, bool hadMainFrameMainResourcePrivateRelayed)
ClearPageSpecificData(WebCore::PageIdentifier pageID);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp (290658 => 290659)
--- trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp 2022-03-01 18:43:58 UTC (rev 290659)
@@ -570,7 +570,7 @@
ASSERT(m_responseCompletionHandler || m_cacheEntryWaitingForContinueDidReceiveResponse);
#endif
bool willWaitForContinueDidReceiveResponse = true;
- send(Messages::WebResourceLoader::DidReceiveResponse { m_response, PrivateRelayed::No, willWaitForContinueDidReceiveResponse });
+ send(Messages::WebResourceLoader::DidReceiveResponse { m_response, m_privateRelayed, willWaitForContinueDidReceiveResponse });
}
bool NetworkResourceLoader::shouldInterruptLoadForXFrameOptions(const String& xFrameOptions, const URL& url)
@@ -1396,7 +1396,7 @@
bool needsContinueDidReceiveResponseMessage = isMainResource();
LOADER_RELEASE_LOG("didRetrieveCacheEntry: Sending WebResourceLoader::DidReceiveResponse IPC (needsContinueDidReceiveResponseMessage=%d)", needsContinueDidReceiveResponseMessage);
- sendDidReceiveResponsePotentiallyInNewBrowsingContextGroup(response, PrivateRelayed::No, needsContinueDidReceiveResponseMessage);
+ sendDidReceiveResponsePotentiallyInNewBrowsingContextGroup(response, entry->privateRelayed(), needsContinueDidReceiveResponseMessage);
if (needsContinueDidReceiveResponseMessage) {
m_response = WTFMove(response);
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp (290658 => 290659)
--- trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.cpp 2022-03-01 18:43:58 UTC (rev 290659)
@@ -533,7 +533,7 @@
cachedResourceLoader->takeLoader()->abort();
}
-std::unique_ptr<WebSocketTask> NetworkSession::createWebSocketTask(WebPageProxyIdentifier, NetworkSocketChannel&, const WebCore::ResourceRequest&, const String& protocol, const WebCore::ClientOrigin&)
+std::unique_ptr<WebSocketTask> NetworkSession::createWebSocketTask(WebPageProxyIdentifier, NetworkSocketChannel&, const WebCore::ResourceRequest&, const String& protocol, const WebCore::ClientOrigin&, bool)
{
return nullptr;
}
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSession.h (290658 => 290659)
--- trunk/Source/WebKit/NetworkProcess/NetworkSession.h 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSession.h 2022-03-01 18:43:58 UTC (rev 290659)
@@ -178,7 +178,7 @@
PrefetchCache& prefetchCache() { return m_prefetchCache; }
void clearPrefetchCache() { m_prefetchCache.clear(); }
- virtual std::unique_ptr<WebSocketTask> createWebSocketTask(WebPageProxyIdentifier, NetworkSocketChannel&, const WebCore::ResourceRequest&, const String& protocol, const WebCore::ClientOrigin&);
+ virtual std::unique_ptr<WebSocketTask> createWebSocketTask(WebPageProxyIdentifier, NetworkSocketChannel&, const WebCore::ResourceRequest&, const String& protocol, const WebCore::ClientOrigin&, bool hadMainFrameMainResourcePrivateRelayed);
virtual void removeWebSocketTask(SessionSet&, WebSocketTask&) { }
virtual void addWebSocketTask(WebPageProxyIdentifier, WebSocketTask&) { }
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp (290658 => 290659)
--- trunk/Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp 2022-03-01 18:43:58 UTC (rev 290659)
@@ -36,9 +36,9 @@
namespace WebKit {
using namespace WebCore;
-std::unique_ptr<NetworkSocketChannel> NetworkSocketChannel::create(NetworkConnectionToWebProcess& connection, PAL::SessionID sessionID, const ResourceRequest& request, const String& protocol, WebSocketIdentifier identifier, WebPageProxyIdentifier webPageProxyID, const WebCore::ClientOrigin& clientOrigin)
+std::unique_ptr<NetworkSocketChannel> NetworkSocketChannel::create(NetworkConnectionToWebProcess& connection, PAL::SessionID sessionID, const ResourceRequest& request, const String& protocol, WebSocketIdentifier identifier, WebPageProxyIdentifier webPageProxyID, const WebCore::ClientOrigin& clientOrigin, bool hadMainFrameMainResourcePrivateRelayed)
{
- auto result = makeUnique<NetworkSocketChannel>(connection, connection.networkProcess().networkSession(sessionID), request, protocol, identifier, webPageProxyID, clientOrigin);
+ auto result = makeUnique<NetworkSocketChannel>(connection, connection.networkProcess().networkSession(sessionID), request, protocol, identifier, webPageProxyID, clientOrigin, hadMainFrameMainResourcePrivateRelayed);
if (!result->m_socket) {
result->didClose(0, "Cannot create a web socket task"_s);
return nullptr;
@@ -46,7 +46,7 @@
return result;
}
-NetworkSocketChannel::NetworkSocketChannel(NetworkConnectionToWebProcess& connection, NetworkSession* session, const ResourceRequest& request, const String& protocol, WebSocketIdentifier identifier, WebPageProxyIdentifier webPageProxyID, const WebCore::ClientOrigin& clientOrigin)
+NetworkSocketChannel::NetworkSocketChannel(NetworkConnectionToWebProcess& connection, NetworkSession* session, const ResourceRequest& request, const String& protocol, WebSocketIdentifier identifier, WebPageProxyIdentifier webPageProxyID, const WebCore::ClientOrigin& clientOrigin, bool hadMainFrameMainResourcePrivateRelayed)
: m_connectionToWebProcess(connection)
, m_identifier(identifier)
, m_session(session)
@@ -56,7 +56,7 @@
if (!m_session)
return;
- m_socket = m_session->createWebSocketTask(webPageProxyID, *this, request, protocol, clientOrigin);
+ m_socket = m_session->createWebSocketTask(webPageProxyID, *this, request, protocol, clientOrigin, hadMainFrameMainResourcePrivateRelayed);
if (m_socket) {
m_session->addWebSocketTask(webPageProxyID, *m_socket);
m_socket->resume();
Modified: trunk/Source/WebKit/NetworkProcess/NetworkSocketChannel.h (290658 => 290659)
--- trunk/Source/WebKit/NetworkProcess/NetworkSocketChannel.h 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/NetworkProcess/NetworkSocketChannel.h 2022-03-01 18:43:58 UTC (rev 290659)
@@ -56,9 +56,9 @@
class NetworkSocketChannel : public IPC::MessageSender, public IPC::MessageReceiver {
WTF_MAKE_FAST_ALLOCATED;
public:
- static std::unique_ptr<NetworkSocketChannel> create(NetworkConnectionToWebProcess&, PAL::SessionID, const WebCore::ResourceRequest&, const String& protocol, WebCore::WebSocketIdentifier, WebPageProxyIdentifier, const WebCore::ClientOrigin&);
+ static std::unique_ptr<NetworkSocketChannel> create(NetworkConnectionToWebProcess&, PAL::SessionID, const WebCore::ResourceRequest&, const String& protocol, WebCore::WebSocketIdentifier, WebPageProxyIdentifier, const WebCore::ClientOrigin&, bool hadMainFrameMainResourcePrivateRelayed);
- NetworkSocketChannel(NetworkConnectionToWebProcess&, NetworkSession*, const WebCore::ResourceRequest&, const String& protocol, WebCore::WebSocketIdentifier, WebPageProxyIdentifier, const WebCore::ClientOrigin&);
+ NetworkSocketChannel(NetworkConnectionToWebProcess&, NetworkSession*, const WebCore::ResourceRequest&, const String& protocol, WebCore::WebSocketIdentifier, WebPageProxyIdentifier, const WebCore::ClientOrigin&, bool hadMainFrameMainResourcePrivateRelayed);
~NetworkSocketChannel();
void didReceiveMessage(IPC::Connection&, IPC::Decoder&);
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm (290658 => 290659)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm 2022-03-01 18:43:58 UTC (rev 290659)
@@ -340,6 +340,11 @@
RetainPtr<NSURLRequest> nsRequest = request.nsURLRequest(WebCore::HTTPBodyUpdatePolicy::UpdateHTTPBody);
RetainPtr<NSMutableURLRequest> mutableRequest = adoptNS([nsRequest.get() mutableCopy]);
+ if (!parameters.isMainFrameNavigation
+ && parameters.hadMainFrameMainResourcePrivateRelayed
+ && [mutableRequest respondsToSelector:@selector(_setPrivacyProxyFailClosedForUnreachableNonMainHosts:)])
+ [mutableRequest _setPrivacyProxyFailClosedForUnreachableNonMainHosts:YES];
+
#if ENABLE(APP_PRIVACY_REPORT)
mutableRequest.get().attribution = request.isAppInitiated() ? NSURLRequestAttributionDeveloper : NSURLRequestAttributionUser;
#endif
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h (290658 => 290659)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h 2022-03-01 18:43:58 UTC (rev 290659)
@@ -157,7 +157,7 @@
void clearAlternativeServices(WallTime) override;
#if HAVE(NSURLSESSION_WEBSOCKET)
- std::unique_ptr<WebSocketTask> createWebSocketTask(WebPageProxyIdentifier, NetworkSocketChannel&, const WebCore::ResourceRequest&, const String& protocol, const WebCore::ClientOrigin&) final;
+ std::unique_ptr<WebSocketTask> createWebSocketTask(WebPageProxyIdentifier, NetworkSocketChannel&, const WebCore::ResourceRequest&, const String& protocol, const WebCore::ClientOrigin&, bool hadMainFrameMainResourcePrivateRelayed) final;
void addWebSocketTask(WebPageProxyIdentifier, WebSocketTask&) final;
void removeWebSocketTask(SessionSet&, WebSocketTask&) final;
#endif
Modified: trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm (290658 => 290659)
--- trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm 2022-03-01 18:43:58 UTC (rev 290659)
@@ -930,7 +930,7 @@
NSURLSessionTaskTransactionMetrics *metrics = taskMetrics.transactionMetrics.lastObject;
#if HAVE(NETWORK_CONNECTION_PRIVACY_STANCE)
- auto privateRelayed = metrics._privacyStance == nw_connection_privacy_stance_proxied ? PrivateRelayed::Yes : PrivateRelayed::No;
+ auto privateRelayed = metrics._privacyStance == nw_connection_privacy_stance_direct ? PrivateRelayed::No : PrivateRelayed::Yes;
#else
auto privateRelayed = PrivateRelayed::No;
#endif
@@ -1694,7 +1694,7 @@
}
#if HAVE(NSURLSESSION_WEBSOCKET)
-std::unique_ptr<WebSocketTask> NetworkSessionCocoa::createWebSocketTask(WebPageProxyIdentifier webPageProxyID, NetworkSocketChannel& channel, const WebCore::ResourceRequest& request, const String& protocol, const WebCore::ClientOrigin& clientOrigin)
+std::unique_ptr<WebSocketTask> NetworkSessionCocoa::createWebSocketTask(WebPageProxyIdentifier webPageProxyID, NetworkSocketChannel& channel, const WebCore::ResourceRequest& request, const String& protocol, const WebCore::ClientOrigin& clientOrigin, bool hadMainFrameMainResourcePrivateRelayed)
{
ASSERT(!request.hasHTTPHeaderField(WebCore::HTTPHeaderName::SecWebSocketProtocol));
auto nsRequest = retainPtr(request.nsURLRequest(WebCore::HTTPBodyUpdatePolicy::DoNotUpdateHTTPBody));
@@ -1716,6 +1716,17 @@
appPrivacyReportTestingData().didLoadAppInitiatedRequest(nsRequest.get().attribution == NSURLRequestAttributionDeveloper);
#endif
+ // FIXME: This function can make up to 3 copies of a request.
+ // Reduce that to one if the protocol is null, the request isn't app initiated,
+ // or the main frame main resource was private relayed, then set all properties
+ // on the one copy.
+ if (hadMainFrameMainResourcePrivateRelayed) {
+ RetainPtr<NSMutableURLRequest> mutableRequest = adoptNS([nsRequest.get() mutableCopy]);
+ if ([mutableRequest respondsToSelector:@selector(_setPrivacyProxyFailClosedForUnreachableNonMainHosts:)])
+ [mutableRequest _setPrivacyProxyFailClosedForUnreachableNonMainHosts:YES];
+ nsRequest = WTFMove(mutableRequest);
+ }
+
auto& sessionSet = sessionSetForPage(webPageProxyID);
RetainPtr<NSURLSessionWebSocketTask> task = [sessionSet.sessionWithCredentialStorage.session webSocketTaskWithRequest:nsRequest.get()];
Modified: trunk/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp (290658 => 290659)
--- trunk/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp 2022-03-01 18:43:58 UTC (rev 290659)
@@ -119,7 +119,7 @@
}
#endif
-std::unique_ptr<WebSocketTask> NetworkSessionSoup::createWebSocketTask(WebPageProxyIdentifier, NetworkSocketChannel& channel, const ResourceRequest& request, const String& protocol, const ClientOrigin&)
+std::unique_ptr<WebSocketTask> NetworkSessionSoup::createWebSocketTask(WebPageProxyIdentifier, NetworkSocketChannel& channel, const ResourceRequest& request, const String& protocol, const ClientOrigin&, bool)
{
GRefPtr<SoupMessage> soupMessage = request.createSoupMessage(blobRegistry());
if (!soupMessage)
Modified: trunk/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.h (290658 => 290659)
--- trunk/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.h 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.h 2022-03-01 18:43:58 UTC (rev 290659)
@@ -63,7 +63,7 @@
void setProxySettings(const WebCore::SoupNetworkProxySettings&);
private:
- std::unique_ptr<WebSocketTask> createWebSocketTask(WebPageProxyIdentifier, NetworkSocketChannel&, const WebCore::ResourceRequest&, const String& protocol, const WebCore::ClientOrigin&) final;
+ std::unique_ptr<WebSocketTask> createWebSocketTask(WebPageProxyIdentifier, NetworkSocketChannel&, const WebCore::ResourceRequest&, const String& protocol, const WebCore::ClientOrigin&, bool) final;
void clearCredentials() final;
std::unique_ptr<WebCore::SoupNetworkSession> m_networkSession;
Modified: trunk/Source/WebKit/WebProcess/Network/WebSocketChannel.cpp (290658 => 290659)
--- trunk/Source/WebKit/WebProcess/Network/WebSocketChannel.cpp 2022-03-01 18:34:58 UTC (rev 290658)
+++ trunk/Source/WebKit/WebProcess/Network/WebSocketChannel.cpp 2022-03-01 18:43:58 UTC (rev 290659)
@@ -118,7 +118,7 @@
m_inspector.didCreateWebSocket(m_document.get(), url);
m_url = request->url();
- MessageSender::send(Messages::NetworkConnectionToWebProcess::CreateSocketChannel { *request, protocol, m_identifier, m_webPageProxyID, m_document->clientOrigin() });
+ MessageSender::send(Messages::NetworkConnectionToWebProcess::CreateSocketChannel { *request, protocol, m_identifier, m_webPageProxyID, m_document->clientOrigin(), WebProcess::singleton().hadMainFrameMainResourcePrivateRelayed() });
return ConnectStatus::OK;
}