Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Use WTF::NoncopyableFunction in NetworkDataTaskClient
https://bugs.webkit.org/show_bug.cgi?id=158887

Reviewed by Alex Christensen.

Use WTF::NoncopyableFunction in NetworkDataTaskClient instead of std::function
and consistently move it around. This avoids some unnecessary copying.

* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::willDecidePendingDownloadDestination):
(WebKit::DownloadManager::continueDecidePendingDownloadDestination):
* NetworkProcess/Downloads/DownloadManager.h:
* NetworkProcess/NetworkDataTask.h:
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::findPendingDownloadLocation):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/PingLoad.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didReceiveChallenge):
(WebKit::NetworkDataTask::didReceiveResponse):
(WebKit::NetworkDataTask::willPerformHTTPRedirection):
(WebKit::NetworkDataTask::tryPasswordBasedAuthentication):
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::coalesceChallengesMatching):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):
* Shared/Authentication/AuthenticationManager.h:
* Shared/Authentication/mac/AuthenticationManager.mac.mm:
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):


Canonical link: https://commits.webkit.org/176960@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@202184 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
cdumez committed Jun 17, 2016
1 parent 75d3fb5 commit 9668b37
Show file tree
Hide file tree
Showing 14 changed files with 101 additions and 56 deletions.
42 changes: 42 additions & 0 deletions Source/WebKit2/ChangeLog
@@ -1,3 +1,45 @@
2016-06-17 Chris Dumez <cdumez@apple.com>

Use WTF::NoncopyableFunction in NetworkDataTaskClient
https://bugs.webkit.org/show_bug.cgi?id=158887

Reviewed by Alex Christensen.

Use WTF::NoncopyableFunction in NetworkDataTaskClient instead of std::function
and consistently move it around. This avoids some unnecessary copying.

* NetworkProcess/Downloads/DownloadManager.cpp:
(WebKit::DownloadManager::willDecidePendingDownloadDestination):
(WebKit::DownloadManager::continueDecidePendingDownloadDestination):
* NetworkProcess/Downloads/DownloadManager.h:
* NetworkProcess/NetworkDataTask.h:
* NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
* NetworkProcess/NetworkLoad.h:
* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::findPendingDownloadLocation):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/PingLoad.h:
* NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTask::didReceiveChallenge):
(WebKit::NetworkDataTask::didReceiveResponse):
(WebKit::NetworkDataTask::willPerformHTTPRedirection):
(WebKit::NetworkDataTask::tryPasswordBasedAuthentication):
* NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::coalesceChallengesMatching):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):
* Shared/Authentication/AuthenticationManager.h:
* Shared/Authentication/mac/AuthenticationManager.mac.mm:
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):

2016-06-17 Antoine Quint <graouts@apple.com>

Web video playback controls should have RTL volume slider
Expand Down
6 changes: 3 additions & 3 deletions Source/WebKit2/NetworkProcess/Downloads/DownloadManager.cpp
Expand Up @@ -95,7 +95,7 @@ void DownloadManager::continueWillSendRequest(DownloadID downloadID, WebCore::Re
pendingDownload->continueWillSendRequest(WTFMove(request));
}

void DownloadManager::willDecidePendingDownloadDestination(NetworkDataTask& networkDataTask, ResponseCompletionHandler completionHandler)
void DownloadManager::willDecidePendingDownloadDestination(NetworkDataTask& networkDataTask, ResponseCompletionHandler&& completionHandler)
{
auto downloadID = networkDataTask.pendingDownloadID();
auto pendingDownload = m_pendingDownloads.take(downloadID);
Expand All @@ -107,8 +107,8 @@ void DownloadManager::willDecidePendingDownloadDestination(NetworkDataTask& netw
void DownloadManager::continueDecidePendingDownloadDestination(DownloadID downloadID, String destination, const SandboxExtension::Handle& sandboxExtensionHandle, bool allowOverwrite)
{
auto pair = m_downloadsWaitingForDestination.take(downloadID);
auto networkDataTask = pair.first;
auto completionHandler = pair.second;
auto networkDataTask = WTFMove(pair.first);
auto completionHandler = WTFMove(pair.second);
if (!networkDataTask || !completionHandler)
return;

Expand Down
2 changes: 1 addition & 1 deletion Source/WebKit2/NetworkProcess/Downloads/DownloadManager.h
Expand Up @@ -79,7 +79,7 @@ class DownloadManager {
std::pair<RefPtr<NetworkDataTask>, std::unique_ptr<PendingDownload>> dataTaskBecameDownloadTask(DownloadID, std::unique_ptr<Download>&&);
void continueCanAuthenticateAgainstProtectionSpace(DownloadID, bool canAuthenticate);
void continueWillSendRequest(DownloadID, WebCore::ResourceRequest&&);
void willDecidePendingDownloadDestination(NetworkDataTask&, ResponseCompletionHandler);
void willDecidePendingDownloadDestination(NetworkDataTask&, ResponseCompletionHandler&&);
void continueDecidePendingDownloadDestination(DownloadID, String destination, const SandboxExtension::Handle&, bool allowOverwrite);
#else
void convertHandleToDownload(DownloadID, WebCore::ResourceHandle*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&);
Expand Down
21 changes: 11 additions & 10 deletions Source/WebKit2/NetworkProcess/NetworkDataTask.h
Expand Up @@ -33,6 +33,7 @@
#include <WebCore/ResourceLoaderOptions.h>
#include <WebCore/ResourceRequest.h>
#include <WebCore/Timer.h>
#include <wtf/NoncopyableFunction.h>
#include <wtf/RetainPtr.h>
#include <wtf/text/WTFString.h>

Expand Down Expand Up @@ -62,15 +63,15 @@ enum class AuthenticationChallengeDisposition {
RejectProtectionSpace
};

typedef std::function<void(const WebCore::ResourceRequest&)> RedirectCompletionHandler;
typedef std::function<void(AuthenticationChallengeDisposition, const WebCore::Credential&)> ChallengeCompletionHandler;
typedef std::function<void(WebCore::PolicyAction)> ResponseCompletionHandler;
typedef NoncopyableFunction<void(const WebCore::ResourceRequest&)> RedirectCompletionHandler;
typedef NoncopyableFunction<void(AuthenticationChallengeDisposition, const WebCore::Credential&)> ChallengeCompletionHandler;
typedef NoncopyableFunction<void(WebCore::PolicyAction)> ResponseCompletionHandler;

class NetworkDataTaskClient {
public:
virtual void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler) = 0;
virtual void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler) = 0;
virtual void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler) = 0;
virtual void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&) = 0;
virtual void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler&&) = 0;
virtual void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) = 0;
virtual void didReceiveData(Ref<WebCore::SharedBuffer>&&) = 0;
virtual void didCompleteWithError(const WebCore::ResourceError&) = 0;
virtual void didBecomeDownload() = 0;
Expand Down Expand Up @@ -98,9 +99,9 @@ class NetworkDataTask : public RefCounted<NetworkDataTask> {
~NetworkDataTask();

void didSendData(uint64_t totalBytesSent, uint64_t totalBytesExpectedToSend);
void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler);
void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler&&);
void didCompleteWithError(const WebCore::ResourceError&);
void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler);
void didReceiveResponse(WebCore::ResourceResponse&&, ResponseCompletionHandler&&);
void didReceiveData(Ref<WebCore::SharedBuffer>&&);
void didBecomeDownload();

Expand All @@ -126,14 +127,14 @@ class NetworkDataTask : public RefCounted<NetworkDataTask> {
const WebCore::ResourceRequest& firstRequest() const { return m_firstRequest; }
WebCore::ResourceRequest currentRequest();
String suggestedFilename();
void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler);
void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&);
void transferSandboxExtensionToDownload(Download&);
bool allowsSpecificHTTPSCertificateForHost(const WebCore::AuthenticationChallenge&);

private:
NetworkDataTask(NetworkSession&, NetworkDataTaskClient&, const WebCore::ResourceRequest&, WebCore::StoredCredentials, WebCore::ContentSniffingPolicy, bool shouldClearReferrerOnHTTPSToHTTPRedirect);

bool tryPasswordBasedAuthentication(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler);
bool tryPasswordBasedAuthentication(const WebCore::AuthenticationChallenge&, const ChallengeCompletionHandler&);

enum FailureType {
NoFailure,
Expand Down
18 changes: 9 additions & 9 deletions Source/WebKit2/NetworkProcess/NetworkLoad.cpp
Expand Up @@ -205,14 +205,14 @@ void NetworkLoad::setPendingDownload(PendingDownload& pendingDownload)
m_task->setPendingDownload(pendingDownload);
}

void NetworkLoad::willPerformHTTPRedirection(ResourceResponse&& response, ResourceRequest&& request, RedirectCompletionHandler completionHandler)
void NetworkLoad::willPerformHTTPRedirection(ResourceResponse&& response, ResourceRequest&& request, RedirectCompletionHandler&& completionHandler)
{
ASSERT(!m_redirectCompletionHandler);
m_redirectCompletionHandler = completionHandler;
m_redirectCompletionHandler = WTFMove(completionHandler);
sharedWillSendRedirectedRequest(WTFMove(request), WTFMove(response));
}

void NetworkLoad::didReceiveChallenge(const AuthenticationChallenge& challenge, std::function<void(AuthenticationChallengeDisposition, const Credential&)> completionHandler)
void NetworkLoad::didReceiveChallenge(const AuthenticationChallenge& challenge, ChallengeCompletionHandler&& completionHandler)
{
// NetworkResourceLoader does not know whether the request is cross origin, so Web process computes an applicable credential policy for it.
ASSERT(m_parameters.clientCredentialPolicy != DoNotAskClientForCrossOriginCredentials);
Expand All @@ -227,7 +227,7 @@ void NetworkLoad::didReceiveChallenge(const AuthenticationChallenge& challenge,
return;
}

m_challengeCompletionHandler = completionHandler;
m_challengeCompletionHandler = WTFMove(completionHandler);
m_challenge = challenge;

if (m_client.isSynchronous()) {
Expand All @@ -240,15 +240,15 @@ void NetworkLoad::didReceiveChallenge(const AuthenticationChallenge& challenge,
m_client.canAuthenticateAgainstProtectionSpaceAsync(challenge.protectionSpace());
}

void NetworkLoad::didReceiveResponseNetworkSession(ResourceResponse&& response, ResponseCompletionHandler completionHandler)
void NetworkLoad::didReceiveResponseNetworkSession(ResourceResponse&& response, ResponseCompletionHandler&& completionHandler)
{
ASSERT(isMainThread());
if (m_task && m_task->pendingDownloadID().downloadID())
NetworkProcess::singleton().findPendingDownloadLocation(*m_task.get(), completionHandler, m_task->currentRequest());
NetworkProcess::singleton().findPendingDownloadLocation(*m_task.get(), WTFMove(completionHandler), m_task->currentRequest());
else if (sharedDidReceiveResponse(WTFMove(response)) == NetworkLoadClient::ShouldContinueDidReceiveResponse::Yes)
completionHandler(PolicyUse);
else
m_responseCompletionHandler = completionHandler;
m_responseCompletionHandler = WTFMove(completionHandler);
}

void NetworkLoad::didReceiveData(Ref<SharedBuffer>&& buffer)
Expand Down Expand Up @@ -380,9 +380,9 @@ void NetworkLoad::continueCanAuthenticateAgainstProtectionSpace(bool result)

if (m_task) {
if (auto* pendingDownload = m_task->pendingDownload())
NetworkProcess::singleton().authenticationManager().didReceiveAuthenticationChallenge(*pendingDownload, *m_challenge, completionHandler);
NetworkProcess::singleton().authenticationManager().didReceiveAuthenticationChallenge(*pendingDownload, *m_challenge, WTFMove(completionHandler));
else
NetworkProcess::singleton().authenticationManager().didReceiveAuthenticationChallenge(m_parameters.webPageID, m_parameters.webFrameID, *m_challenge, completionHandler);
NetworkProcess::singleton().authenticationManager().didReceiveAuthenticationChallenge(m_parameters.webPageID, m_parameters.webFrameID, *m_challenge, WTFMove(completionHandler));
}
#endif
if (m_handle)
Expand Down
6 changes: 3 additions & 3 deletions Source/WebKit2/NetworkProcess/NetworkLoad.h
Expand Up @@ -66,9 +66,9 @@ class NetworkLoad : public WebCore::ResourceHandleClient
DownloadID pendingDownloadID() { return m_task->pendingDownloadID(); }

// NetworkDataTaskClient
void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler) final;
void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler) final;
void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler) final;
void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&&) final;
void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler&&) final;
void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler&&) final;
void didReceiveData(Ref<WebCore::SharedBuffer>&&) final;
void didCompleteWithError(const WebCore::ResourceError&) final;
void didBecomeDownload() final;
Expand Down
4 changes: 2 additions & 2 deletions Source/WebKit2/NetworkProcess/NetworkProcess.cpp
Expand Up @@ -496,12 +496,12 @@ void NetworkProcess::pendingDownloadCanceled(DownloadID downloadID)
downloadProxyConnection()->send(Messages::DownloadProxy::DidCancel({ }), downloadID.downloadID());
}

void NetworkProcess::findPendingDownloadLocation(NetworkDataTask& networkDataTask, ResponseCompletionHandler completionHandler, const ResourceRequest& updatedRequest)
void NetworkProcess::findPendingDownloadLocation(NetworkDataTask& networkDataTask, ResponseCompletionHandler&& completionHandler, const ResourceRequest& updatedRequest)
{
uint64_t destinationID = networkDataTask.pendingDownloadID().downloadID();
downloadProxyConnection()->send(Messages::DownloadProxy::DidStart(updatedRequest, String()), destinationID);

downloadManager().willDecidePendingDownloadDestination(networkDataTask, completionHandler);
downloadManager().willDecidePendingDownloadDestination(networkDataTask, WTFMove(completionHandler));
downloadProxyConnection()->send(Messages::DownloadProxy::DecideDestinationWithSuggestedFilenameAsync(networkDataTask.pendingDownloadID(), networkDataTask.suggestedFilename()), destinationID);
}

Expand Down
2 changes: 1 addition & 1 deletion Source/WebKit2/NetworkProcess/NetworkProcess.h
Expand Up @@ -106,7 +106,7 @@ class NetworkProcess : public ChildProcess, private DownloadManager::Client {
#endif

#if USE(NETWORK_SESSION)
void findPendingDownloadLocation(NetworkDataTask&, ResponseCompletionHandler, const WebCore::ResourceRequest&);
void findPendingDownloadLocation(NetworkDataTask&, ResponseCompletionHandler&&, const WebCore::ResourceRequest&);
#endif

void prefetchDNS(const String&);
Expand Down
6 changes: 3 additions & 3 deletions Source/WebKit2/NetworkProcess/PingLoad.h
Expand Up @@ -48,17 +48,17 @@ class PingLoad : public NetworkDataTaskClient {
}

private:
void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler completionHandler) override
void willPerformHTTPRedirection(WebCore::ResourceResponse&&, WebCore::ResourceRequest&&, RedirectCompletionHandler&& completionHandler) override
{
completionHandler({ });
delete this;
}
void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler completionHandler) override
void didReceiveChallenge(const WebCore::AuthenticationChallenge&, ChallengeCompletionHandler&& completionHandler) override
{
completionHandler(AuthenticationChallengeDisposition::Cancel, { });
delete this;
}
void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler completionHandler) override
void didReceiveResponseNetworkSession(WebCore::ResourceResponse&&, ResponseCompletionHandler&& completionHandler) override
{
completionHandler(WebCore::PolicyAction::PolicyIgnore);
delete this;
Expand Down
14 changes: 7 additions & 7 deletions Source/WebKit2/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm
Expand Up @@ -139,7 +139,7 @@ static void applyBasicAuthorizationHeader(WebCore::ResourceRequest& request, con
m_client->didSendData(totalBytesSent, totalBytesExpectedToSend);
}

void NetworkDataTask::didReceiveChallenge(const WebCore::AuthenticationChallenge& challenge, ChallengeCompletionHandler completionHandler)
void NetworkDataTask::didReceiveChallenge(const WebCore::AuthenticationChallenge& challenge, ChallengeCompletionHandler&& completionHandler)
{
// Proxy authentication is handled by CFNetwork internally. We can get here if the user cancels
// CFNetwork authentication dialog, and we shouldn't ask the client to display another one in that case.
Expand All @@ -152,7 +152,7 @@ static void applyBasicAuthorizationHeader(WebCore::ResourceRequest& request, con
return;

if (m_client)
m_client->didReceiveChallenge(challenge, completionHandler);
m_client->didReceiveChallenge(challenge, WTFMove(completionHandler));
else {
ASSERT_NOT_REACHED();
completionHandler(AuthenticationChallengeDisposition::PerformDefaultHandling, { });
Expand All @@ -165,10 +165,10 @@ static void applyBasicAuthorizationHeader(WebCore::ResourceRequest& request, con
m_client->didCompleteWithError(error);
}

void NetworkDataTask::didReceiveResponse(WebCore::ResourceResponse&& response, ResponseCompletionHandler completionHandler)
void NetworkDataTask::didReceiveResponse(WebCore::ResourceResponse&& response, ResponseCompletionHandler&& completionHandler)
{
if (m_client)
m_client->didReceiveResponseNetworkSession(WTFMove(response), completionHandler);
m_client->didReceiveResponseNetworkSession(WTFMove(response), WTFMove(completionHandler));
else {
ASSERT_NOT_REACHED();
completionHandler(WebCore::PolicyAction::PolicyIgnore);
Expand All @@ -187,7 +187,7 @@ static void applyBasicAuthorizationHeader(WebCore::ResourceRequest& request, con
m_client->didBecomeDownload();
}

void NetworkDataTask::willPerformHTTPRedirection(WebCore::ResourceResponse&& redirectResponse, WebCore::ResourceRequest&& request, RedirectCompletionHandler completionHandler)
void NetworkDataTask::willPerformHTTPRedirection(WebCore::ResourceResponse&& redirectResponse, WebCore::ResourceRequest&& request, RedirectCompletionHandler&& completionHandler)
{
if (redirectResponse.httpStatusCode() == 307 || redirectResponse.httpStatusCode() == 308) {
ASSERT(m_lastHTTPMethod == request.httpMethod());
Expand Down Expand Up @@ -232,7 +232,7 @@ static void applyBasicAuthorizationHeader(WebCore::ResourceRequest& request, con
}

if (m_client)
m_client->willPerformHTTPRedirection(WTFMove(redirectResponse), WTFMove(request), completionHandler);
m_client->willPerformHTTPRedirection(WTFMove(redirectResponse), WTFMove(request), WTFMove(completionHandler));
else {
ASSERT_NOT_REACHED();
completionHandler({ });
Expand Down Expand Up @@ -279,7 +279,7 @@ static void applyBasicAuthorizationHeader(WebCore::ResourceRequest& request, con
m_task.get()._pathToDownloadTaskFile = filename;
}

bool NetworkDataTask::tryPasswordBasedAuthentication(const WebCore::AuthenticationChallenge& challenge, ChallengeCompletionHandler completionHandler)
bool NetworkDataTask::tryPasswordBasedAuthentication(const WebCore::AuthenticationChallenge& challenge, const ChallengeCompletionHandler& completionHandler)
{
if (!challenge.protectionSpace().isPasswordBased())
return false;
Expand Down
2 changes: 1 addition & 1 deletion Source/WebKit2/NetworkProcess/cocoa/NetworkSessionCocoa.mm
Expand Up @@ -197,7 +197,7 @@ - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didRece
completionHandlerCopy(toNSURLSessionAuthChallengeDisposition(disposition), credential.nsCredential());
Block_release(completionHandlerCopy);
};
networkDataTask->didReceiveChallenge(challenge, challengeCompletionHandler);
networkDataTask->didReceiveChallenge(challenge, WTFMove(challengeCompletionHandler));
} else {
LOG(NetworkSession, "%llu didReceiveChallenge completionHandler (cancel)", taskIdentifier);
completionHandler(NSURLSessionAuthChallengeCancelAuthenticationChallenge, nil);
Expand Down

0 comments on commit 9668b37

Please sign in to comment.