@@ -5836,7 +5836,7 @@ index 61f10cc81264e24a6f76e5194119fd567f37f9f9..6b567d0c641a515544815c83574e7f17
5836
5836
5837
5837
#if HAVE(TLS_PROTOCOL_VERSION_T)
5838
5838
diff --git a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp
5839
- index 26d961d4e9bc5bcd8064361f9d2e9bc478573b72..2e7fc9f49c648a042f9cd5806874a2bf0aa145f1 100644
5839
+ index 26d961d4e9bc5bcd8064361f9d2e9bc478573b72..c5056df4833dd7d4e713a5edabf8c87fb6feb980 100644
5840
5840
--- a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp
5841
5841
+++ b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp
5842
5842
@@ -26,9 +26,13 @@
@@ -5853,15 +5853,16 @@ index 26d961d4e9bc5bcd8064361f9d2e9bc478573b72..2e7fc9f49c648a042f9cd5806874a2bf
5853
5853
#include <WebCore/AuthenticationChallenge.h>
5854
5854
#include <WebCore/CookieJar.h>
5855
5855
#include <WebCore/CurlRequest.h>
5856
- @@ -38,6 +42,7 @@
5856
+ @@ -38,6 +42,8 @@
5857
5857
#include <WebCore/ResourceError.h>
5858
5858
#include <WebCore/SameSiteInfo.h>
5859
5859
#include <WebCore/SynchronousLoaderClient.h>
5860
+ +#include <WebCore/TextEncoding.h>
5860
5861
+#include <wtf/FileSystem.h>
5861
5862
5862
5863
namespace WebKit {
5863
5864
5864
- @@ -71,6 +76 ,8 @@ NetworkDataTaskCurl::NetworkDataTaskCurl(NetworkSession& session, NetworkDataTas
5865
+ @@ -71,6 +77 ,8 @@ NetworkDataTaskCurl::NetworkDataTaskCurl(NetworkSession& session, NetworkDataTas
5865
5866
m_curlRequest->setUserPass(m_initialCredential.user(), m_initialCredential.password());
5866
5867
m_curlRequest->setAuthenticationScheme(ProtectionSpaceAuthenticationSchemeHTTPBasic);
5867
5868
}
@@ -5870,7 +5871,7 @@ index 26d961d4e9bc5bcd8064361f9d2e9bc478573b72..2e7fc9f49c648a042f9cd5806874a2bf
5870
5871
m_curlRequest->setStartTime(m_startTime);
5871
5872
m_curlRequest->start();
5872
5873
}
5873
- @@ -177,7 +184 ,12 @@ void NetworkDataTaskCurl::curlDidReceiveBuffer(CurlRequest&, Ref<SharedBuffer>&&
5874
+ @@ -177,7 +185 ,12 @@ void NetworkDataTaskCurl::curlDidReceiveBuffer(CurlRequest&, Ref<SharedBuffer>&&
5874
5875
auto protectedThis = makeRef(*this);
5875
5876
if (state() == State::Canceling || state() == State::Completed || (!m_client && !isDownload()))
5876
5877
return;
@@ -5884,7 +5885,7 @@ index 26d961d4e9bc5bcd8064361f9d2e9bc478573b72..2e7fc9f49c648a042f9cd5806874a2bf
5884
5885
m_client->didReceiveData(WTFMove(buffer));
5885
5886
}
5886
5887
5887
- @@ -186,6 +198 ,12 @@ void NetworkDataTaskCurl::curlDidComplete(CurlRequest&, NetworkLoadMetrics&& net
5888
+ @@ -186,6 +199 ,12 @@ void NetworkDataTaskCurl::curlDidComplete(CurlRequest&, NetworkLoadMetrics&& net
5888
5889
if (state() == State::Canceling || state() == State::Completed || (!m_client && !isDownload()))
5889
5890
return;
5890
5891
@@ -5897,7 +5898,7 @@ index 26d961d4e9bc5bcd8064361f9d2e9bc478573b72..2e7fc9f49c648a042f9cd5806874a2bf
5897
5898
m_client->didCompleteWithError({ }, WTFMove(networkLoadMetrics));
5898
5899
}
5899
5900
5900
- @@ -199,6 +217 ,13 @@ void NetworkDataTaskCurl::curlDidFailWithError(CurlRequest& request, ResourceErr
5901
+ @@ -199,6 +218 ,13 @@ void NetworkDataTaskCurl::curlDidFailWithError(CurlRequest& request, ResourceErr
5901
5902
return;
5902
5903
}
5903
5904
@@ -5911,7 +5912,7 @@ index 26d961d4e9bc5bcd8064361f9d2e9bc478573b72..2e7fc9f49c648a042f9cd5806874a2bf
5911
5912
m_client->didCompleteWithError(resourceError);
5912
5913
}
5913
5914
5914
- @@ -235,6 +260 ,18 @@ void NetworkDataTaskCurl::invokeDidReceiveResponse()
5915
+ @@ -235,6 +261 ,18 @@ void NetworkDataTaskCurl::invokeDidReceiveResponse()
5915
5916
break;
5916
5917
case PolicyAction::Ignore:
5917
5918
break;
@@ -5930,7 +5931,7 @@ index 26d961d4e9bc5bcd8064361f9d2e9bc478573b72..2e7fc9f49c648a042f9cd5806874a2bf
5930
5931
default:
5931
5932
notImplemented();
5932
5933
break;
5933
- @@ -312,6 +349 ,8 @@ void NetworkDataTaskCurl::willPerformHTTPRedirection()
5934
+ @@ -312,6 +350 ,8 @@ void NetworkDataTaskCurl::willPerformHTTPRedirection()
5934
5935
m_curlRequest->setUserPass(m_initialCredential.user(), m_initialCredential.password());
5935
5936
m_curlRequest->setAuthenticationScheme(ProtectionSpaceAuthenticationSchemeHTTPBasic);
5936
5937
}
@@ -5939,6 +5940,35 @@ index 26d961d4e9bc5bcd8064361f9d2e9bc478573b72..2e7fc9f49c648a042f9cd5806874a2bf
5939
5940
m_curlRequest->setStartTime(m_startTime);
5940
5941
m_curlRequest->start();
5941
5942
5943
+ @@ -462,4 +502,16 @@ void NetworkDataTaskCurl::handleCookieHeaders(const WebCore::ResourceRequest& re
5944
+ }
5945
+ }
5946
+
5947
+ +String NetworkDataTaskCurl::suggestedFilename() const
5948
+ +{
5949
+ + if (!m_suggestedFilename.isEmpty())
5950
+ + return m_suggestedFilename;
5951
+ +
5952
+ + String suggestedFilename = m_response.suggestedFilename();
5953
+ + if (!suggestedFilename.isEmpty())
5954
+ + return suggestedFilename;
5955
+ +
5956
+ + return decodeURLEscapeSequences(m_response.url().lastPathComponent());
5957
+ +}
5958
+ +
5959
+ } // namespace WebKit
5960
+ diff --git a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.h b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.h
5961
+ index 52d085b44c17e60f6133fba0e0cd6933ee3af255..7c95b368df416300ce095c77c4a2ef29a3ffb0bb 100644
5962
+ --- a/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.h
5963
+ +++ b/Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.h
5964
+ @@ -81,6 +81,7 @@ private:
5965
+
5966
+ void appendCookieHeader(WebCore::ResourceRequest&);
5967
+ void handleCookieHeaders(const WebCore::ResourceRequest&, const WebCore::CurlResponse&);
5968
+ + String suggestedFilename() const override;
5969
+
5970
+ State m_state { State::Suspended };
5971
+
5942
5972
diff --git a/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp b/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp
5943
5973
index 9c0465058939cf65fc10f4771ed216662b6b9f8b..53b7425514c7adbbe02085e6d8c810ed112b28c0 100644
5944
5974
--- a/Source/WebKit/NetworkProcess/soup/NetworkDataTaskSoup.cpp
0 commit comments