@@ -4742,18 +4742,15 @@ index a9d228ca404918860c40651994db78a1e76db5ca..1fc3c345308dfed8384d1c02334f2030
4742
4742
}
4743
4743
4744
4744
diff --git a/Source/WebCore/page/SocketProvider.cpp b/Source/WebCore/page/SocketProvider.cpp
4745
- index 803ac83155ff4df1becf75cd4710f6fbf7bbc32a..54fb28427e8b2b7da2ea3204673414f8e1bd24d7 100644
4745
+ index 803ac83155ff4df1becf75cd4710f6fbf7bbc32a..cc08682748a6d2fdf5d79980cd629812c98aa7ce 100644
4746
4746
--- a/Source/WebCore/page/SocketProvider.cpp
4747
4747
+++ b/Source/WebCore/page/SocketProvider.cpp
4748
- @@ -33,7 +33,11 @@ namespace WebCore {
4748
+ @@ -33,7 +33,7 @@ namespace WebCore {
4749
4749
4750
4750
Ref<SocketStreamHandle> SocketProvider::createSocketStreamHandle(const URL& url, SocketStreamHandleClient& client, PAL::SessionID sessionID, const String& credentialPartition, const StorageSessionProvider* provider)
4751
4751
{
4752
- +#if OS(WINDOWS)
4752
+ - return SocketStreamHandleImpl::create(url, client, sessionID, credentialPartition, { }, provider);
4753
4753
+ return SocketStreamHandleImpl::create(url, false, client, sessionID, credentialPartition, { }, provider);
4754
- +#else
4755
- return SocketStreamHandleImpl::create(url, client, sessionID, credentialPartition, { }, provider);
4756
- +#endif
4757
4754
}
4758
4755
4759
4756
RefPtr<ThreadableWebSocketChannel> SocketProvider::createWebSocketChannel(Document&, WebSocketChannelClient&)
@@ -5370,6 +5367,66 @@ index 87930048f4fd18d6098af7de4da25be532df5931..2bb2afcf9473b0d5d97efbe18dd7b814
5370
5367
Vector<WTF::Function<void(bool)>> m_listeners;
5371
5368
Timer m_updateStateTimer;
5372
5369
5370
+ diff --git a/Source/WebCore/platform/network/cf/SocketStreamHandleImpl.h b/Source/WebCore/platform/network/cf/SocketStreamHandleImpl.h
5371
+ index d677280d2b5e7b053a240c155d64bc881f1737bb..1be949e09982b34366d162e6d45ebc51a76dcfb0 100644
5372
+ --- a/Source/WebCore/platform/network/cf/SocketStreamHandleImpl.h
5373
+ +++ b/Source/WebCore/platform/network/cf/SocketStreamHandleImpl.h
5374
+ @@ -47,7 +47,7 @@ class SocketStreamHandleClient;
5375
+
5376
+ class SocketStreamHandleImpl : public SocketStreamHandle {
5377
+ public:
5378
+ - static Ref<SocketStreamHandleImpl> create(const URL& url, SocketStreamHandleClient& client, PAL::SessionID sessionID, const String& credentialPartition, SourceApplicationAuditToken&& auditData, const StorageSessionProvider* provider) { return adoptRef(*new SocketStreamHandleImpl(url, client, sessionID, credentialPartition, WTFMove(auditData), provider)); }
5379
+ + static Ref<SocketStreamHandleImpl> create(const URL& url, bool ignoreCertificateErrors, SocketStreamHandleClient& client, PAL::SessionID sessionID, const String& credentialPartition, SourceApplicationAuditToken&& auditData, const StorageSessionProvider* provider) { return adoptRef(*new SocketStreamHandleImpl(url, ignoreCertificateErrors, client, sessionID, credentialPartition, WTFMove(auditData), provider)); }
5380
+
5381
+ virtual ~SocketStreamHandleImpl();
5382
+
5383
+ @@ -61,7 +61,7 @@ private:
5384
+ Optional<size_t> platformSendInternal(const uint8_t*, size_t);
5385
+ bool sendPendingData();
5386
+
5387
+ - WEBCORE_EXPORT SocketStreamHandleImpl(const URL&, SocketStreamHandleClient&, PAL::SessionID, const String& credentialPartition, SourceApplicationAuditToken&&, const StorageSessionProvider*);
5388
+ + WEBCORE_EXPORT SocketStreamHandleImpl(const URL&, bool ignoreCertificateErrors, SocketStreamHandleClient&, PAL::SessionID, const String& credentialPartition, SourceApplicationAuditToken&&, const StorageSessionProvider*);
5389
+ void createStreams();
5390
+ void scheduleStreams();
5391
+ void chooseProxy();
5392
+ @@ -106,6 +106,7 @@ private:
5393
+ String m_credentialPartition;
5394
+ SourceApplicationAuditToken m_auditData;
5395
+ RefPtr<const StorageSessionProvider> m_storageSessionProvider;
5396
+ + bool m_ignoreCertificateErrors { false };
5397
+
5398
+ StreamBuffer<uint8_t, 1024 * 1024> m_buffer;
5399
+ static const unsigned maxBufferSize = 100 * 1024 * 1024;
5400
+ diff --git a/Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp b/Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp
5401
+ index 545c28e62f72771de5f3f3e9fed2e8cf6147ed0f..a6fc5f5b3fc62adce2604821bd29f9aed378c24c 100644
5402
+ --- a/Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp
5403
+ +++ b/Source/WebCore/platform/network/cf/SocketStreamHandleImplCFNet.cpp
5404
+ @@ -96,7 +96,7 @@ static inline auto callbacksRunLoopMode()
5405
+ #endif
5406
+ }
5407
+
5408
+ -SocketStreamHandleImpl::SocketStreamHandleImpl(const URL& url, SocketStreamHandleClient& client, PAL::SessionID sessionID, const String& credentialPartition, SourceApplicationAuditToken&& auditData, const StorageSessionProvider* provider)
5409
+ +SocketStreamHandleImpl::SocketStreamHandleImpl(const URL& url, bool ignoreCertificateErrors, SocketStreamHandleClient& client, PAL::SessionID sessionID, const String& credentialPartition, SourceApplicationAuditToken&& auditData, const StorageSessionProvider* provider)
5410
+ : SocketStreamHandle(url, client)
5411
+ , m_connectingSubstate(New)
5412
+ , m_connectionType(Unknown)
5413
+ @@ -104,6 +104,7 @@ SocketStreamHandleImpl::SocketStreamHandleImpl(const URL& url, SocketStreamHandl
5414
+ , m_credentialPartition(credentialPartition)
5415
+ , m_auditData(WTFMove(auditData))
5416
+ , m_storageSessionProvider(provider)
5417
+ + , m_ignoreCertificateErrors(ignoreCertificateErrors)
5418
+ {
5419
+ LOG(Network, "SocketStreamHandle %p new client %p", this, &m_client);
5420
+
5421
+ @@ -360,7 +361,7 @@ void SocketStreamHandleImpl::createStreams()
5422
+ }
5423
+
5424
+ if (shouldUseSSL()) {
5425
+ - CFBooleanRef validateCertificateChain = DeprecatedGlobalSettings::allowsAnySSLCertificate() ? kCFBooleanFalse : kCFBooleanTrue;
5426
+ + CFBooleanRef validateCertificateChain = m_ignoreCertificateErrors || DeprecatedGlobalSettings::allowsAnySSLCertificate() ? kCFBooleanFalse : kCFBooleanTrue;
5427
+ const void* keys[] = {
5428
+ kCFStreamSSLPeerName,
5429
+ kCFStreamSSLLevel,
5373
5430
diff --git a/Source/WebCore/platform/network/curl/CurlStream.cpp b/Source/WebCore/platform/network/curl/CurlStream.cpp
5374
5431
index 26dc7bef4b74bc6b4e2e526dec6523c3ad6d3643..c783aa5a7984f3966312e5e0ffd76f93ed6208f8 100644
5375
5432
--- a/Source/WebCore/platform/network/curl/CurlStream.cpp
@@ -5494,6 +5551,19 @@ index 3b6dea9ed2552d81aaf7e694a5f922e96dbf94d6..6b5bd9b9782b0fb55341e76fc3cff862
5494
5551
}
5495
5552
5496
5553
SocketStreamHandleImpl::~SocketStreamHandleImpl()
5554
+ diff --git a/Source/WebCore/platform/network/soup/SocketStreamHandleImpl.h b/Source/WebCore/platform/network/soup/SocketStreamHandleImpl.h
5555
+ index 3ecf866005da6da9cec7c7930e6a4f93cb39d6e0..d81dc9ac0c433e00ab4ad73e206856098ab9230e 100644
5556
+ --- a/Source/WebCore/platform/network/soup/SocketStreamHandleImpl.h
5557
+ +++ b/Source/WebCore/platform/network/soup/SocketStreamHandleImpl.h
5558
+ @@ -47,7 +47,7 @@ class StorageSessionProvider;
5559
+
5560
+ class SocketStreamHandleImpl final : public SocketStreamHandle {
5561
+ public:
5562
+ - static Ref<SocketStreamHandleImpl> create(const URL&, SocketStreamHandleClient&, PAL::SessionID, const String&, SourceApplicationAuditToken&&, const StorageSessionProvider*)
5563
+ + static Ref<SocketStreamHandleImpl> create(const URL&, bool, SocketStreamHandleClient&, PAL::SessionID, const String&, SourceApplicationAuditToken&&, const StorageSessionProvider*)
5564
+ {
5565
+ RELEASE_ASSERT_NOT_REACHED();
5566
+ }
5497
5567
diff --git a/Source/WebCore/platform/win/KeyEventWin.cpp b/Source/WebCore/platform/win/KeyEventWin.cpp
5498
5568
index 44737686187a06a92c408ea60b63a48ac8481334..c754a763688b52e7ddd47493296ef9b0c6adc527 100644
5499
5569
--- a/Source/WebCore/platform/win/KeyEventWin.cpp
@@ -5635,18 +5705,15 @@ index 099ce74a3e08a66a060fb3a6095c12ea38f5b612..157873fe8ad24728321029019a53000b
5635
5705
HashSet<Ref<NetworkResourceLoader>> m_keptAliveLoads;
5636
5706
5637
5707
diff --git a/Source/WebKit/NetworkProcess/NetworkSocketStream.cpp b/Source/WebKit/NetworkProcess/NetworkSocketStream.cpp
5638
- index d1fa427d82884fc43569d1bf0df7d728921502fc..59790afe7f4deedc69b3f020e23f2b50a38595cf 100644
5708
+ index d1fa427d82884fc43569d1bf0df7d728921502fc..30450ab01cddfcd406e46ac8e08ac50a2983f7a6 100644
5639
5709
--- a/Source/WebKit/NetworkProcess/NetworkSocketStream.cpp
5640
5710
+++ b/Source/WebKit/NetworkProcess/NetworkSocketStream.cpp
5641
- @@ -43,7 +43,11 @@ Ref<NetworkSocketStream> NetworkSocketStream::create(NetworkProcess& networkProc
5711
+ @@ -43,7 +43,7 @@ Ref<NetworkSocketStream> NetworkSocketStream::create(NetworkProcess& networkProc
5642
5712
NetworkSocketStream::NetworkSocketStream(NetworkProcess& networkProcess, URL&& url, PAL::SessionID sessionID, const String& credentialPartition, WebSocketIdentifier identifier, IPC::Connection& connection, SourceApplicationAuditToken&& auditData)
5643
5713
: m_identifier(identifier)
5644
5714
, m_connection(connection)
5645
- +#if OS(WINDOWS )
5715
+ - , m_impl(SocketStreamHandleImpl::create(url, *this, sessionID, credentialPartition, WTFMove(auditData), NetworkStorageSessionProvider::create(networkProcess, sessionID).ptr()) )
5646
5716
+ , m_impl(SocketStreamHandleImpl::create(url, networkProcess.networkSession(sessionID)->ignoreCertificateErrors(), *this, sessionID, credentialPartition, WTFMove(auditData), NetworkStorageSessionProvider::create(networkProcess, sessionID).ptr()))
5647
- +#else
5648
- , m_impl(SocketStreamHandleImpl::create(url, *this, sessionID, credentialPartition, WTFMove(auditData), NetworkStorageSessionProvider::create(networkProcess, sessionID).ptr()))
5649
- +#endif
5650
5717
{
5651
5718
}
5652
5719
0 commit comments