| Index: ios/web/net/crw_cert_verification_controller.mm
|
| diff --git a/ios/web/net/crw_cert_verification_controller.mm b/ios/web/net/crw_cert_verification_controller.mm
|
| index 923e0abfc73d0797bc2f9b6b78230ba44d080f5f..4fe42a177d3dd43772709b6567dde9d69cc292b2 100644
|
| --- a/ios/web/net/crw_cert_verification_controller.mm
|
| +++ b/ios/web/net/crw_cert_verification_controller.mm
|
| @@ -129,10 +129,11 @@ loadPolicyForRejectedTrustResult:(SecTrustResultType)trustResult
|
| cert->os_cert_handle(), net::X509Certificate::OSCertHandles());
|
| }
|
| DCHECK(cert->GetIntermediateCertificates().empty());
|
| - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, base::BindBlock(^{
|
| - _certPolicyCache->AllowCertForHost(
|
| - cert.get(), base::SysNSStringToUTF8(host), status);
|
| - }));
|
| + web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, base::BindBlockArc(^{
|
| + _certPolicyCache->AllowCertForHost(
|
| + cert.get(), base::SysNSStringToUTF8(host),
|
| + status);
|
| + }));
|
| }
|
|
|
| #pragma mark - Private
|
| @@ -165,22 +166,24 @@ decideLoadPolicyForRejectedTrustResult:(SecTrustResultType)trustResult
|
| completionHandler:(web::PolicyDecisionHandler)handler {
|
| DCHECK_CURRENTLY_ON(web::WebThread::UI);
|
| DCHECK(handler);
|
| - web::WebThread::PostTask(web::WebThread::IO, FROM_HERE, base::BindBlock(^{
|
| - // |loadPolicyForRejectedTrustResult:certStatus:serverTrust:host:| can
|
| - // only be called on IO thread.
|
| - net::CertStatus certStatus =
|
| - [self certStatusFromTrustResult:trustResult serverTrust:trust];
|
| -
|
| - web::CertAcceptPolicy policy =
|
| - [self loadPolicyForRejectedTrustResult:trustResult
|
| - certStatus:certStatus
|
| - serverTrust:trust.get()
|
| - host:host];
|
| -
|
| - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, base::BindBlock(^{
|
| - handler(policy, certStatus);
|
| - }));
|
| - }));
|
| + web::WebThread::PostTask(
|
| + web::WebThread::IO, FROM_HERE, base::BindBlockArc(^{
|
| + // |loadPolicyForRejectedTrustResult:certStatus:serverTrust:host:| can
|
| + // only be called on IO thread.
|
| + net::CertStatus certStatus =
|
| + [self certStatusFromTrustResult:trustResult serverTrust:trust];
|
| +
|
| + web::CertAcceptPolicy policy =
|
| + [self loadPolicyForRejectedTrustResult:trustResult
|
| + certStatus:certStatus
|
| + serverTrust:trust.get()
|
| + host:host];
|
| +
|
| + web::WebThread::PostTask(web::WebThread::UI, FROM_HERE,
|
| + base::BindBlockArc(^{
|
| + handler(policy, certStatus);
|
| + }));
|
| + }));
|
| }
|
|
|
| - (void)verifyTrust:(base::ScopedCFTypeRef<SecTrustRef>)trust
|
| @@ -189,15 +192,18 @@ decideLoadPolicyForRejectedTrustResult:(SecTrustResultType)trustResult
|
| DCHECK(completionHandler);
|
| // SecTrustEvaluate performs trust evaluation synchronously, possibly making
|
| // network requests. The UI thread should not be blocked by that operation.
|
| - base::WorkerPool::PostTask(FROM_HERE, base::BindBlock(^{
|
| - SecTrustResultType trustResult = kSecTrustResultInvalid;
|
| - if (SecTrustEvaluate(trust.get(), &trustResult) != errSecSuccess) {
|
| - trustResult = kSecTrustResultInvalid;
|
| - }
|
| - web::WebThread::PostTask(web::WebThread::UI, FROM_HERE, base::BindBlock(^{
|
| - completionHandler(trustResult);
|
| - }));
|
| - }), false /* task_is_slow */);
|
| + base::WorkerPool::PostTask(
|
| + FROM_HERE, base::BindBlockArc(^{
|
| + SecTrustResultType trustResult = kSecTrustResultInvalid;
|
| + if (SecTrustEvaluate(trust.get(), &trustResult) != errSecSuccess) {
|
| + trustResult = kSecTrustResultInvalid;
|
| + }
|
| + web::WebThread::PostTask(web::WebThread::UI, FROM_HERE,
|
| + base::BindBlockArc(^{
|
| + completionHandler(trustResult);
|
| + }));
|
| + }),
|
| + false /* task_is_slow */);
|
| }
|
|
|
| - (web::CertAcceptPolicy)
|
|
|