Reviewed by Darin
[WebKit-https.git] / WebCore / platform / network / ProtectionSpace.cpp
index dff3c25c4c2efaa109bd654943f279d4ed51762c..d0020c15d16bda225b821c9989a1e4b919a22d1c 100644 (file)
 #include "config.h"
 #include "ProtectionSpace.h"
 
+#include "AuthenticationCF.h"
+#include <CFNetwork/CFURLProtectionSpacePriv.h>
+#include <wtf/RetainPtr.h>
+
 namespace WebCore {
 
 // Need to enforce empty, non-null strings due to the pickiness of the String == String operator
@@ -41,7 +45,7 @@ ProtectionSpace::ProtectionSpace(const String& host, int port, ProtectionSpaceSe
     : m_host(host.length() ? host : "")
     , m_port(port)
     , m_serverType(serverType)
-    , m_realm(realm.length() ? host : "")
+    , m_realm(realm.length() ? realm : "")
     , m_authenticationScheme(authenticationScheme)
 {    
 }
@@ -81,10 +85,8 @@ ProtectionSpaceAuthenticationScheme ProtectionSpace::authenticationScheme() cons
 
 bool ProtectionSpace::receivesCredentialSecurely() const
 {
-    return (m_serverType == ProtectionSpaceServerHTTPS ||
-            m_serverType == ProtectionSpaceServerFTPS ||
-            m_serverType == ProtectionSpaceProxyHTTPS ||
-            m_authenticationScheme == ProtectionSpaceAuthenticationSchemeHTTPDigest);
+    RetainPtr<CFURLProtectionSpaceRef> cfSpace(AdoptCF, createCF(*this));
+    return cfSpace && CFURLProtectionSpaceReceivesCredentialSecurely(cfSpace.get());
 }
 
 bool operator==(const ProtectionSpace& a, const ProtectionSpace& b)