void NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync(ResourceHandle* handle, const ProtectionSpace& protectionSpace) { ASSERT(RunLoop::isMain()); ASSERT_UNUSED(handle, handle == m_handle); // Handle server trust evaluation at platform-level if requested, for performance reasons. if (protectionSpace.authenticationScheme() == ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested && !NetworkProcess::shared().canHandleHTTPSServerTrustEvaluation()) { continueCanAuthenticateAgainstProtectionSpace(false); return; } if (isSynchronous()) { // FIXME: We should ask the WebProcess like the asynchronous case below does. // This is currently impossible as the WebProcess is blocked waiting on this synchronous load. // It's possible that we can jump straight to the UI process to resolve this. continueCanAuthenticateAgainstProtectionSpace(true); return; } sendAbortingOnFailure(Messages::WebResourceLoader::CanAuthenticateAgainstProtectionSpace(protectionSpace)); }
bool ResourceHandle::canAuthenticateAgainstProtectionSpace(const ProtectionSpace& protectionSpace) { ResourceHandleClient* client = this->client(); if (d->m_usesAsyncCallbacks) { if (client) client->canAuthenticateAgainstProtectionSpaceAsync(this, protectionSpace); else continueCanAuthenticateAgainstProtectionSpace(false); return false; // Ignored by caller. } return client && client->canAuthenticateAgainstProtectionSpace(this, protectionSpace); }