Diff
Modified: trunk/Source/WebCore/ChangeLog (171800 => 171801)
--- trunk/Source/WebCore/ChangeLog 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/ChangeLog 2014-07-30 18:56:13 UTC (rev 171801)
@@ -1,3 +1,71 @@
+2014-07-30 Dan Bernstein <m...@apple.com>
+
+ Made Credential hold onto an NSURLCredential when needed.
+ Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
+
+ Reviewed by Alexey Proskuryakov.
+
+ No change in functionality.
+
+ * WebCore.exp.in: Updated.
+
+ * platform/network/Credential.h: Removed definition of CERTIFICATE_CREDENTIALS_SUPPORTED,
+ which is not used anymore.
+
+ * platform/network/CredentialBase.h:
+ (WebCore::CredentialBase::encodingRequiresPlatformData): Added a base implementation that
+ returns false.
+
+ * platform/network/cf/AuthenticationCF.cpp:
+ Changed to use the Credential constructor that takes an CFURLCredential, and the new
+ cfCredential member function. Made the createCF and core functions Windows-only and
+ therefore removed the CERTIFICATE_CREDENTIALS_SUPPORTED code from them.
+ * platform/network/cf/AuthenticationCF.h:
+
+ * platform/network/cf/CredentialStorageCFNet.cpp:
+ (WebCore::CredentialStorage::getFromPersistentStorage): Changed to construct a Credential
+ from a CFURLCredential.
+ (WebCore::CredentialStorage::saveToPersistentStorage): Changed to use the new cfCredential
+ member function.
+
+ * platform/network/cf/ResourceHandleCFNet.cpp:
+ (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto to both.
+ (WebCore::ResourceHandle::receivedCredential): Ditto.
+
+ * platform/network/cocoa/CredentialCocoa.h:
+ Replaced the m_identity, m_certificates and m_type member variables with an m_nsCredential
+ one holding onto an NSURLCredential. Declared constructors from and getters for
+ NSURLCredential and CFURLCredentialRef.
+ (WebCore::Credential::encodingRequiresPlatformData): Override that checks the
+ NSURLCredential if necessary.
+
+ * platform/network/cocoa/CredentialCocoa.mm:
+ (WebCore::toNSURLCredentialPersistence): New helper function.
+ (WebCore::toCredentialPersistence): Ditto.
+ (WebCore::Credential::Credential): Defined constructors to create or take an
+ NSURLCredential.
+ (WebCore::Credential::cfCredential): Added.
+ (WebCore::Credential::nsCredential): Added. Returns nil for the empty credential.
+ (WebCore::Credential::isEmpty): Changed to check m_nsCredential.
+ (WebCore::Credential::platformCompare): Changed to compare m_nsCredential if needed.
+ (WebCore::Credential::encodingRequiresPlatformData): Returns true if the credential is not
+ a user and a password.
+
+ * platform/network/mac/AuthenticationMac.h: Removed mac and core functions for Credential.
+ * platform/network/mac/AuthenticationMac.mm:
+ (-[WebCoreAuthenticationClientAsChallengeSender useCredential:forAuthenticationChallenge:]):
+ Changed to use Credential constructor that takes an NSURLCredential.
+ (WebCore::AuthenticationChallenge::AuthenticationChallenge): Ditto. Also use the
+ nsCredential getter.
+
+ * platform/network/mac/CredentialStorageMac.mm:
+ (WebCore::CredentialStorage::getFromPersistentStorage): Use new Credential constructor.
+
+ * platform/network/mac/ResourceHandleMac.mm:
+ (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto. Also use the
+ nsCredential getter.
+ (WebCore::ResourceHandle::receivedCredential): Ditto.
+
2014-07-30 Sergio Villar Senin <svil...@igalia.com>
[GTK] Build depends on OpenGL ES
Modified: trunk/Source/WebCore/WebCore.exp.in (171800 => 171801)
--- trunk/Source/WebCore/WebCore.exp.in 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/WebCore.exp.in 2014-07-30 18:56:13 UTC (rev 171801)
@@ -71,6 +71,8 @@
__ZN7WebCore10ClientRectC1ERKNS_7IntRectE
__ZN7WebCore10ClientRectC1ERKNS_9FloatRectE
__ZN7WebCore10ClientRectC1Ev
+__ZN7WebCore10Credential28encodingRequiresPlatformDataEP15NSURLCredential
+__ZN7WebCore10CredentialC1EP15NSURLCredential
__ZN7WebCore10FloatPointC1ERK7CGPoint
__ZN7WebCore10FloatPointC1ERKNS_8IntPointE
__ZN7WebCore10FontGlyphs15releaseFontDataEv
@@ -1072,7 +1074,6 @@
__ZN7WebCore3URLC1EP5NSURL
__ZN7WebCore3URLC1EPK7__CFURL
__ZN7WebCore3URLC1ERKS0_RKN3WTF6StringE
-__ZN7WebCore3macERKNS_10CredentialE
__ZN7WebCore3macERKNS_23AuthenticationChallengeE
__ZN7WebCore40restrictMinimumScaleFactorToViewportSizeERNS_18ViewportAttributesENS_7IntSizeEf
__ZN7WebCore42URLByTruncatingOneCharacterBeforeComponentEP5NSURL18CFURLComponentType
@@ -1149,7 +1150,6 @@
__ZN7WebCore4Path14addRoundedRectERKNS_9FloatRectERKNS_9FloatSizeENS0_19RoundedRectStrategyE
__ZN7WebCore4PathC1Ev
__ZN7WebCore4PathD1Ev
-__ZN7WebCore4coreEP15NSURLCredential
__ZN7WebCore4coreEP28NSURLAuthenticationChallenge
__ZN7WebCore4toJSEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS0_7ProfileE
__ZN7WebCore4toJSEPN3JSC9ExecStateEPNS_17JSDOMGlobalObjectEPNS_10ClientRectE
@@ -1536,10 +1536,8 @@
__ZN7WebCore9unionRectERKN3WTF6VectorINS_9FloatRectELm0ENS0_15CrashOnOverflowEEE
__ZNK3JSC8Bindings10RootObject12globalObjectEv
__ZNK3WTF6String14createCFStringEv
-__ZNK7WebCore10Credential12certificatesEv
-__ZNK7WebCore10Credential4typeEv
+__ZNK7WebCore10Credential12nsCredentialEv
__ZNK7WebCore10Credential7isEmptyEv
-__ZNK7WebCore10Credential8identityEv
__ZNK7WebCore10FloatPointcv7CGPointEv
__ZNK7WebCore10FontGlyphs17realizeFontDataAtERKNS_15FontDescriptionEj
__ZNK7WebCore10LayoutRect8containsERKS0_
@@ -2221,7 +2219,6 @@
.objc_class_name_WebFontCache
.objc_class_name_WebWindowFadeAnimation
.objc_class_name_WebWindowScaleAnimation
-__ZN7WebCore10CredentialC1EP20OpaqueSecIdentityRefPK9__CFArrayNS_21CredentialPersistenceE
__ZN7WebCore10FloatPointC1ERK8_NSPoint
__ZN7WebCore10handCursorEv
__ZN7WebCore11CachedImage5imageEv
@@ -2527,7 +2524,6 @@
_WebUIApplicationDidBecomeActiveNotification
_WebUIApplicationWillEnterForegroundNotification
_WebUIApplicationWillResignActiveNotification
-__ZN7WebCore10CredentialC1EP13__SecIdentityPK9__CFArrayNS_21CredentialPersistenceE
__ZN7WebCore10RenderView35resumePausedImageAnimationsIfNeededEv
__ZN7WebCore10ScrollView15setScrollOffsetERKNS_8IntPointE
__ZN7WebCore10ScrollView21setExposedContentRectERKNS_9FloatRectE
Modified: trunk/Source/WebCore/platform/network/Credential.h (171800 => 171801)
--- trunk/Source/WebCore/platform/network/Credential.h 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/platform/network/Credential.h 2014-07-30 18:56:13 UTC (rev 171801)
@@ -32,9 +32,6 @@
#include "CredentialBase.h"
-// FIXME: Remove this macro once it is not used in WebKit.
-#define CERTIFICATE_CREDENTIALS_SUPPORTED 0
-
namespace WebCore {
class Credential : public CredentialBase {
Modified: trunk/Source/WebCore/platform/network/CredentialBase.h (171800 => 171801)
--- trunk/Source/WebCore/platform/network/CredentialBase.h 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/platform/network/CredentialBase.h 2014-07-30 18:56:13 UTC (rev 171801)
@@ -47,7 +47,9 @@
const String& password() const;
bool hasPassword() const;
CredentialPersistence persistence() const;
-
+
+ bool encodingRequiresPlatformData() const { return false; }
+
static bool compare(const Credential&, const Credential&);
protected:
Modified: trunk/Source/WebCore/platform/network/cf/AuthenticationCF.cpp (171800 => 171801)
--- trunk/Source/WebCore/platform/network/cf/AuthenticationCF.cpp 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/platform/network/cf/AuthenticationCF.cpp 2014-07-30 18:56:13 UTC (rev 171801)
@@ -55,10 +55,11 @@
AuthenticationClient* authenticationClient)
#if PLATFORM(COCOA)
: AuthenticationChallengeBase(ProtectionSpace(CFURLAuthChallengeGetProtectionSpace(cfChallenge)),
+ Credential(CFURLAuthChallengeGetProposedCredential(cfChallenge)),
#else
: AuthenticationChallengeBase(core(CFURLAuthChallengeGetProtectionSpace(cfChallenge)),
-#endif
core(CFURLAuthChallengeGetProposedCredential(cfChallenge)),
+#endif
CFURLAuthChallengeGetPreviousFailureCount(cfChallenge),
(CFURLResponseRef)CFURLAuthChallengeGetFailureResponse(cfChallenge),
CFURLAuthChallengeGetError(cfChallenge))
@@ -92,22 +93,22 @@
{
// FIXME: Why not cache CFURLAuthChallengeRef in m_cfChallenge? Foundation counterpart does that.
- CFURLCredentialRef credential = createCF(coreChallenge.proposedCredential());
-
#if PLATFORM(COCOA)
- CFURLAuthChallengeRef result = CFURLAuthChallengeCreate(0, coreChallenge.protectionSpace().cfSpace(), credential,
+ CFURLAuthChallengeRef result = CFURLAuthChallengeCreate(0, coreChallenge.protectionSpace().cfSpace(), coreChallenge.proposedCredential().cfCredential(),
#else
+ RetainPtr<CFURLCredentialRef> credential = adoptCF(createCF(coreChallenge.proposedCredential()));
RetainPtr<CFURLProtectionSpaceRef> protectionSpace = adoptCF(createCF(coreChallenge.protectionSpace()));
- CFURLAuthChallengeRef result = CFURLAuthChallengeCreate(0, protectionSpace.get(), credential,
+ CFURLAuthChallengeRef result = CFURLAuthChallengeCreate(0, protectionSpace.get(), credential.get(),
#endif
coreChallenge.previousFailureCount(),
coreChallenge.failureResponse().cfURLResponse(),
coreChallenge.error());
- CFRelease(credential);
return result;
}
+#if PLATFORM(WIN)
+
CFURLCredentialRef createCF(const Credential& coreCredential)
{
CFURLCredentialPersistence persistence = kCFURLCredentialPersistenceNone;
@@ -124,15 +125,9 @@
ASSERT_NOT_REACHED();
}
-#if CERTIFICATE_CREDENTIALS_SUPPORTED
- if (coreCredential.type() == CredentialTypeClientCertificate)
- return CFURLCredentialCreateWithIdentityAndCertificateArray(kCFAllocatorDefault, coreCredential.identity(), coreCredential.certificates(), persistence);
-#endif
-
return CFURLCredentialCreate(0, coreCredential.user().createCFString().get(), coreCredential.password().createCFString().get(), 0, persistence);
}
-#if PLATFORM(WIN)
CFURLProtectionSpaceRef createCF(const ProtectionSpace& coreSpace)
{
CFURLProtectionSpaceServerType serverType = kCFURLProtectionSpaceServerHTTP;
@@ -199,7 +194,6 @@
return CFURLProtectionSpaceCreate(0, coreSpace.host().createCFString().get(), coreSpace.port(), serverType, coreSpace.realm().createCFString().get(), scheme);
}
-#endif // PLATFORM(WIN)
Credential core(CFURLCredentialRef cfCredential)
{
@@ -220,17 +214,10 @@
ASSERT_NOT_REACHED();
}
-#if CERTIFICATE_CREDENTIALS_SUPPORTED
- SecIdentityRef identity = CFURLCredentialGetCertificateIdentity(cfCredential);
- if (identity)
- return Credential(identity, CFURLCredentialGetCertificateArray(cfCredential), persistence);
-#endif
-
RetainPtr<CFStringRef> password = adoptCF(CFURLCredentialCopyPassword(cfCredential));
return Credential(CFURLCredentialGetUsername(cfCredential), password.get(), persistence);
}
-#if PLATFORM(WIN)
ProtectionSpace core(CFURLProtectionSpaceRef cfSpace)
{
ProtectionSpaceServerType serverType = ProtectionSpaceServerHTTP;
Modified: trunk/Source/WebCore/platform/network/cf/AuthenticationCF.h (171800 => 171801)
--- trunk/Source/WebCore/platform/network/cf/AuthenticationCF.h 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/platform/network/cf/AuthenticationCF.h 2014-07-30 18:56:13 UTC (rev 171801)
@@ -40,16 +40,16 @@
class ProtectionSpace;
CFURLAuthChallengeRef createCF(const AuthenticationChallenge&);
+#if PLATFORM(WIN)
CFURLCredentialRef createCF(const Credential&);
-#if PLATFORM(WIN)
CFURLProtectionSpaceRef createCF(const ProtectionSpace&);
#endif
#if PLATFORM(COCOA)
AuthenticationChallenge core(CFURLAuthChallengeRef);
#endif
+#if PLATFORM(WIN)
Credential core(CFURLCredentialRef);
-#if PLATFORM(WIN)
ProtectionSpace core(CFURLProtectionSpaceRef);
#endif
}
Modified: trunk/Source/WebCore/platform/network/cf/CredentialStorageCFNet.cpp (171800 => 171801)
--- trunk/Source/WebCore/platform/network/cf/CredentialStorageCFNet.cpp 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/platform/network/cf/CredentialStorageCFNet.cpp 2014-07-30 18:56:13 UTC (rev 171801)
@@ -49,11 +49,12 @@
{
#if PLATFORM(COCOA)
RetainPtr<CFURLCredentialRef> credentialCF = adoptCF(wkCopyCredentialFromCFPersistentStorage(protectionSpace.cfSpace()));
+ return Credential(credentialCF.get());
#else
RetainPtr<CFURLProtectionSpaceRef> protectionSpaceCF = adoptCF(createCF(protectionSpace));
RetainPtr<CFURLCredentialRef> credentialCF = adoptCF(wkCopyCredentialFromCFPersistentStorage(protectionSpaceCF.get()));
-#endif
return core(credentialCF.get());
+#endif
}
#if PLATFORM(IOS)
@@ -63,12 +64,9 @@
if (credential.persistence() == CredentialPersistenceNone) {
Credential sessionCredential(credential, CredentialPersistenceForSession);
- RetainPtr<CFURLCredentialRef> sessionCredentialCF = adoptCF(createCF(sessionCredential));
- CFURLCredentialStorageSetDefaultCredentialForProtectionSpace(storageCF.get(), sessionCredentialCF.get(), protectionSpace.cfSpace());
- } else {
- RetainPtr<CFURLCredentialRef> credentialCF = adoptCF(createCF(credential));
- CFURLCredentialStorageSetDefaultCredentialForProtectionSpace(storageCF.get(), credentialCF.get(), protectionSpace.cfSpace());
- }
+ CFURLCredentialStorageSetDefaultCredentialForProtectionSpace(storageCF.get(), sessionCredential.cfCredential(), protectionSpace.cfSpace());
+ } else
+ CFURLCredentialStorageSetDefaultCredentialForProtectionSpace(storageCF.get(), credential.cfCredential(), protectionSpace.cfSpace());
}
#endif
Modified: trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp (171800 => 171801)
--- trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp 2014-07-30 18:56:13 UTC (rev 171801)
@@ -342,14 +342,19 @@
#endif
if (!d->m_user.isNull() && !d->m_pass.isNull()) {
- RetainPtr<CFURLCredentialRef> credential = adoptCF(CFURLCredentialCreate(kCFAllocatorDefault, d->m_user.createCFString().get(), d->m_pass.createCFString().get(), 0, kCFURLCredentialPersistenceNone));
+ RetainPtr<CFURLCredentialRef> cfCredential = adoptCF(CFURLCredentialCreate(kCFAllocatorDefault, d->m_user.createCFString().get(), d->m_pass.createCFString().get(), 0, kCFURLCredentialPersistenceNone));
+#if PLATFORM(COCOA)
+ Credential credential = Credential(cfCredential.get());
+#else
+ Credential credential = core(cfCredential.get());
+#endif
URL urlToStore;
if (challenge.failureResponse().httpStatusCode() == 401)
urlToStore = challenge.failureResponse().url();
- CredentialStorage::set(core(credential.get()), challenge.protectionSpace(), urlToStore);
+ CredentialStorage::set(credential, challenge.protectionSpace(), urlToStore);
- CFURLConnectionUseCredential(d->m_connection.get(), credential.get(), challenge.cfURLAuthChallengeRef());
+ CFURLConnectionUseCredential(d->m_connection.get(), cfCredential.get(), challenge.cfURLAuthChallengeRef());
d->m_user = String();
d->m_pass = String();
// FIXME: Per the specification, the user shouldn't be asked for credentials if there were incorrect ones provided explicitly.
@@ -372,8 +377,12 @@
// Store the credential back, possibly adding it as a default for this directory.
CredentialStorage::set(credential, challenge.protectionSpace(), challenge.failureResponse().url());
}
+#if PLATFORM(COCOA)
+ CFURLConnectionUseCredential(d->m_connection.get(), credential.cfCredential(), challenge.cfURLAuthChallengeRef());
+#else
RetainPtr<CFURLCredentialRef> cfCredential = adoptCF(createCF(credential));
CFURLConnectionUseCredential(d->m_connection.get(), cfCredential.get(), challenge.cfURLAuthChallengeRef());
+#endif
return;
}
}
@@ -416,17 +425,25 @@
// Manage per-session credentials internally, because once NSURLCredentialPersistencePerSession is used, there is no way
// to ignore it for a particular request (short of removing it altogether).
Credential webCredential(credential.user(), credential.password(), CredentialPersistenceNone);
- RetainPtr<CFURLCredentialRef> cfCredential = adoptCF(createCF(webCredential));
-
+
URL urlToStore;
if (challenge.failureResponse().httpStatusCode() == 401)
urlToStore = challenge.failureResponse().url();
CredentialStorage::set(webCredential, challenge.protectionSpace(), urlToStore);
+#if PLATFORM(COCOA)
+ CFURLConnectionUseCredential(d->m_connection.get(), webCredential.cfCredential(), challenge.cfURLAuthChallengeRef());
+#else
+ RetainPtr<CFURLCredentialRef> cfCredential = adoptCF(createCF(webCredential));
CFURLConnectionUseCredential(d->m_connection.get(), cfCredential.get(), challenge.cfURLAuthChallengeRef());
+#endif
} else {
+#if PLATFORM(COCOA)
+ CFURLConnectionUseCredential(d->m_connection.get(), credential.cfCredential(), challenge.cfURLAuthChallengeRef());
+#else
RetainPtr<CFURLCredentialRef> cfCredential = adoptCF(createCF(credential));
CFURLConnectionUseCredential(d->m_connection.get(), cfCredential.get(), challenge.cfURLAuthChallengeRef());
+#endif
}
clearAuthentication();
Modified: trunk/Source/WebCore/platform/network/cocoa/CredentialCocoa.h (171800 => 171801)
--- trunk/Source/WebCore/platform/network/cocoa/CredentialCocoa.h 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/platform/network/cocoa/CredentialCocoa.h 2014-07-30 18:56:13 UTC (rev 171801)
@@ -30,50 +30,48 @@
#include <Security/SecBase.h>
#include <wtf/RetainPtr.h>
-// FIXME: Remove this macro once it is not used in WebKit.
-#define CERTIFICATE_CREDENTIALS_SUPPORTED 1
+#if USE(CFNETWORK)
+typedef const struct _CFURLCredential* CFURLCredentialRef;
+#endif
+OBJC_CLASS NSURLCredential;
+
namespace WebCore {
-enum CredentialType {
- CredentialTypePassword,
- CredentialTypeClientCertificate
-};
-
class Credential : public CredentialBase {
public:
Credential()
: CredentialBase()
- , m_type(CredentialTypePassword)
{
}
Credential(const String& user, const String& password, CredentialPersistence persistence)
: CredentialBase(user, password, persistence)
- , m_type(CredentialTypePassword)
{
}
- Credential(const Credential& original, CredentialPersistence persistence)
- : CredentialBase(original, persistence)
- , m_type(original.m_type)
- {
- }
+ Credential(const Credential&, CredentialPersistence);
- Credential(SecIdentityRef, CFArrayRef certificates, CredentialPersistence);
+#if USE(CFNETWORK)
+ explicit Credential(CFURLCredentialRef);
+#endif
+ explicit Credential(NSURLCredential *);
bool isEmpty() const;
- SecIdentityRef identity() const;
- CFArrayRef certificates() const;
- CredentialType type() const;
+ bool encodingRequiresPlatformData() const { return m_nsCredential && encodingRequiresPlatformData(m_nsCredential.get()); }
+#if USE(CFNETWORK)
+ CFURLCredentialRef cfCredential() const;
+#endif
+ NSURLCredential *nsCredential() const;
+
static bool platformCompare(const Credential&, const Credential&);
private:
- RetainPtr<SecIdentityRef> m_identity;
- RetainPtr<CFArrayRef> m_certificates;
- CredentialType m_type;
+ static bool encodingRequiresPlatformData(NSURLCredential *);
+
+ mutable RetainPtr<NSURLCredential> m_nsCredential;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/network/cocoa/CredentialCocoa.mm (171800 => 171801)
--- trunk/Source/WebCore/platform/network/cocoa/CredentialCocoa.mm 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/platform/network/cocoa/CredentialCocoa.mm 2014-07-30 18:56:13 UTC (rev 171801)
@@ -26,51 +26,118 @@
#import "config.h"
#import "CredentialCocoa.h"
+#if USE(CFNETWORK)
+@interface NSURLCredential (WebDetails)
+- (id)_initWithCFURLCredential:(CFURLCredentialRef)credential;
+- (CFURLCredentialRef) _CFURLCredential;
+@end
+#endif
+
namespace WebCore {
-Credential::Credential(SecIdentityRef identity, CFArrayRef certificates, CredentialPersistence persistence)
- : CredentialBase(emptyString(), emptyString(), persistence)
- , m_identity(identity)
- , m_certificates(certificates)
- , m_type(CredentialTypeClientCertificate)
+static NSURLCredentialPersistence toNSURLCredentialPersistence(CredentialPersistence persistence)
{
+ switch (persistence) {
+ case CredentialPersistenceNone:
+ return NSURLCredentialPersistenceNone;
+ case CredentialPersistenceForSession:
+ return NSURLCredentialPersistenceForSession;
+ case CredentialPersistencePermanent:
+ return NSURLCredentialPersistencePermanent;
+ }
+
+ ASSERT_NOT_REACHED();
+ return NSURLCredentialPersistenceNone;
}
-bool Credential::isEmpty() const
+static CredentialPersistence toCredentialPersistence(NSURLCredentialPersistence persistence)
{
- if (m_type == CredentialTypeClientCertificate && (m_identity || m_certificates))
- return false;
+ switch (persistence) {
+ case NSURLCredentialPersistenceNone:
+ return CredentialPersistenceNone;
+ case NSURLCredentialPersistenceForSession:
+ return CredentialPersistenceForSession;
+ case NSURLCredentialPersistencePermanent:
+#if PLATFORM(IOS) || __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
+ case NSURLCredentialPersistenceSynchronizable:
+#endif
+ return CredentialPersistencePermanent;
+ }
- return CredentialBase::isEmpty();
+ ASSERT_NOT_REACHED();
+ return CredentialPersistenceNone;
}
-SecIdentityRef Credential::identity() const
+Credential::Credential(const Credential& original, CredentialPersistence persistence)
+ : CredentialBase(original, persistence)
{
- return m_identity.get();
+ NSURLCredential *originalNSURLCredential = original.m_nsCredential.get();
+ if (!originalNSURLCredential)
+ return;
+
+ if (NSString *user = originalNSURLCredential.user)
+ m_nsCredential = adoptNS([[NSURLCredential alloc] initWithUser:user password:originalNSURLCredential.password persistence:toNSURLCredentialPersistence(persistence)]);
+ else if (SecIdentityRef identity = originalNSURLCredential.identity)
+ m_nsCredential = adoptNS([[NSURLCredential alloc] initWithIdentity:identity certificates:originalNSURLCredential.certificates persistence:toNSURLCredentialPersistence(persistence)]);
+ else {
+ // It is not possible to set the persistence of server trust credentials.
+ ASSERT_NOT_REACHED();
+ m_nsCredential = originalNSURLCredential;
+ }
}
-
-CFArrayRef Credential::certificates() const
+
+#if USE(CFNETWORK)
+Credential::Credential(CFURLCredentialRef credential)
+ : Credential(adoptNS([[NSURLCredential alloc] _initWithCFURLCredential:credential]).get())
{
- return m_certificates.get();
}
-
-CredentialType Credential::type() const
+#endif
+
+Credential::Credential(NSURLCredential *credential)
+ : CredentialBase(credential.user, credential.password, toCredentialPersistence(credential.persistence))
+ , m_nsCredential(credential)
{
- return m_type;
}
-bool Credential::platformCompare(const Credential& a, const Credential& b)
+#if USE(CFNETWORK)
+CFURLCredentialRef Credential::cfCredential() const
{
- if (a.type() != CredentialTypeClientCertificate || b.type() != CredentialTypeClientCertificate)
- return a.type() == b.type();
+ return [nsCredential() _CFURLCredential];
+}
+#endif
- // FIXME: Is pointer comparison of the identity and certificates properties sufficient?
- if (a.identity() != b.identity())
+NSURLCredential *Credential::nsCredential() const
+{
+ if (m_nsCredential)
+ return m_nsCredential.get();
+
+ if (CredentialBase::isEmpty())
+ return nil;
+
+ m_nsCredential = adoptNS([[NSURLCredential alloc] initWithUser:user() password:password() persistence:toNSURLCredentialPersistence(persistence())]);
+
+ return m_nsCredential.get();
+}
+
+bool Credential::isEmpty() const
+{
+ if (m_nsCredential)
return false;
- if (a.certificates() != b.certificates())
- return false;
- return true;
+ return CredentialBase::isEmpty();
}
+bool Credential::platformCompare(const Credential& a, const Credential& b)
+{
+ if (!a.m_nsCredential && !b.m_nsCredential)
+ return true;
+
+ return [a.nsCredential() isEqual:b.nsCredential()];
+}
+
+bool Credential::encodingRequiresPlatformData(NSURLCredential *credential)
+{
+ return !credential.user;
+}
+
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/network/mac/AuthenticationMac.h (171800 => 171801)
--- trunk/Source/WebCore/platform/network/mac/AuthenticationMac.h 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/platform/network/mac/AuthenticationMac.h 2014-07-30 18:56:13 UTC (rev 171801)
@@ -28,18 +28,14 @@
#ifdef __OBJC__
@class NSURLAuthenticationChallenge;
-@class NSURLCredential;
namespace WebCore {
class AuthenticationChallenge;
-class Credential;
NSURLAuthenticationChallenge *mac(const AuthenticationChallenge&);
-NSURLCredential *mac(const Credential&);
AuthenticationChallenge core(NSURLAuthenticationChallenge *);
-Credential core(NSURLCredential *);
}
#endif // __OBJC__
Modified: trunk/Source/WebCore/platform/network/mac/AuthenticationMac.mm (171800 => 171801)
--- trunk/Source/WebCore/platform/network/mac/AuthenticationMac.mm 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/platform/network/mac/AuthenticationMac.mm 2014-07-30 18:56:13 UTC (rev 171801)
@@ -30,7 +30,6 @@
#import "AuthenticationClient.h"
#import "Credential.h"
#import <Foundation/NSURLAuthenticationChallenge.h>
-#import <Foundation/NSURLCredential.h>
#import <Foundation/NSURLProtectionSpace.h>
#if USE(CFNETWORK)
@@ -43,11 +42,6 @@
#endif
@end
-@interface NSURLCredential (Details)
-- (id) _initWithCFURLCredential:(CFURLCredentialRef)credential;
-- (CFURLCredentialRef) _cfurlcredential;
-@end
-
#endif
using namespace WebCore;
@@ -88,7 +82,7 @@
- (void)useCredential:(NSURLCredential *)credential forAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
if (m_client)
- m_client->receivedCredential(core(challenge), core(credential));
+ m_client->receivedCredential(core(challenge), Credential(credential));
}
- (void)continueWithoutCredentialForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
@@ -127,11 +121,6 @@
return AuthenticationChallenge([challengeSender cfChallenge], [challengeSender client]);
}
-Credential core(NSURLCredential *macCredential)
-{
- return core([macCredential _cfurlcredential]);
-}
-
NSURLAuthenticationChallenge *mac(const AuthenticationChallenge& coreChallenge)
{
AuthenticationClient* authClient = coreChallenge.authenticationClient();
@@ -147,12 +136,6 @@
#endif
}
-NSURLCredential *mac(const Credential& coreCredential)
-{
- RetainPtr<CFURLCredentialRef> credential = adoptCF(createCF(coreCredential));
- return [[[NSURLCredential alloc] _initWithCFURLCredential:credential.get()] autorelease];
-}
-
#else
AuthenticationChallenge::AuthenticationChallenge(const ProtectionSpace& protectionSpace,
@@ -170,7 +153,7 @@
AuthenticationChallenge::AuthenticationChallenge(NSURLAuthenticationChallenge *challenge)
: AuthenticationChallengeBase(ProtectionSpace([challenge protectionSpace]),
- core([challenge proposedCredential]),
+ Credential([challenge proposedCredential]),
[challenge previousFailureCount],
[challenge failureResponse],
[challenge error])
@@ -216,73 +199,18 @@
return coreChallenge.nsURLAuthenticationChallenge();
return [[[NSURLAuthenticationChallenge alloc] initWithProtectionSpace:coreChallenge.protectionSpace().nsSpace()
- proposedCredential:mac(coreChallenge.proposedCredential())
+ proposedCredential:coreChallenge.proposedCredential().nsCredential()
previousFailureCount:coreChallenge.previousFailureCount()
failureResponse:coreChallenge.failureResponse().nsURLResponse()
error:coreChallenge.error()
sender:coreChallenge.sender()] autorelease];
}
-NSURLCredential *mac(const Credential& coreCredential)
-{
- if (coreCredential.isEmpty())
- return nil;
-
- NSURLCredentialPersistence persistence = NSURLCredentialPersistenceNone;
- switch (coreCredential.persistence()) {
- case CredentialPersistenceNone:
- break;
- case CredentialPersistenceForSession:
- persistence = NSURLCredentialPersistenceForSession;
- break;
- case CredentialPersistencePermanent:
- persistence = NSURLCredentialPersistencePermanent;
- break;
- default:
- ASSERT_NOT_REACHED();
- }
-
- if (coreCredential.type() == CredentialTypeClientCertificate) {
- return [[[NSURLCredential alloc] initWithIdentity:coreCredential.identity()
- certificates:(NSArray *)coreCredential.certificates()
- persistence:persistence]
- autorelease];
- }
-
- return [[[NSURLCredential alloc] initWithUser:coreCredential.user()
- password:coreCredential.password()
- persistence:persistence]
- autorelease];
-}
-
AuthenticationChallenge core(NSURLAuthenticationChallenge *macChallenge)
{
return AuthenticationChallenge(macChallenge);
}
-Credential core(NSURLCredential *macCredential)
-{
- CredentialPersistence persistence = CredentialPersistenceNone;
- switch ([macCredential persistence]) {
- case NSURLCredentialPersistenceNone:
- break;
- case NSURLCredentialPersistenceForSession:
- persistence = CredentialPersistenceForSession;
- break;
- case NSURLCredentialPersistencePermanent:
- persistence = CredentialPersistencePermanent;
- break;
- default:
- ASSERT_NOT_REACHED();
- }
-
- SecIdentityRef identity = [macCredential identity];
- if (identity)
- return Credential(identity, (CFArrayRef)[macCredential certificates], persistence);
-
- return Credential([macCredential user], [macCredential password], persistence);
-}
-
#endif // USE(CFNETWORK)
} // namespace WebCore
Modified: trunk/Source/WebCore/platform/network/mac/CredentialStorageMac.mm (171800 => 171801)
--- trunk/Source/WebCore/platform/network/mac/CredentialStorageMac.mm 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/platform/network/mac/CredentialStorageMac.mm 2014-07-30 18:56:13 UTC (rev 171801)
@@ -37,7 +37,7 @@
Credential CredentialStorage::getFromPersistentStorage(const ProtectionSpace& protectionSpace)
{
NSURLCredential *credential = [[NSURLCredentialStorage sharedCredentialStorage] defaultCredentialForProtectionSpace:protectionSpace.nsSpace()];
- return credential ? core(credential) : Credential();
+ return credential ? Credential(credential) : Credential();
}
#if PLATFORM(IOS)
Modified: trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm (171800 => 171801)
--- trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebCore/platform/network/mac/ResourceHandleMac.mm 2014-07-30 18:56:13 UTC (rev 171801)
@@ -549,7 +549,7 @@
persistence:NSURLCredentialPersistenceForSession];
d->m_currentMacChallenge = challenge.nsURLAuthenticationChallenge();
d->m_currentWebChallenge = challenge;
- receivedCredential(challenge, core(credential));
+ receivedCredential(challenge, Credential(credential));
[credential release];
// FIXME: Per the specification, the user shouldn't be asked for credentials if there were incorrect ones provided explicitly.
d->m_user = String();
@@ -574,7 +574,7 @@
// Store the credential back, possibly adding it as a default for this directory.
CredentialStorage::set(credential, challenge.protectionSpace(), challenge.failureResponse().url());
}
- [challenge.sender() useCredential:mac(credential) forAuthenticationChallenge:mac(challenge)];
+ [challenge.sender() useCredential:credential.nsCredential() forAuthenticationChallenge:mac(challenge)];
return;
}
}
@@ -658,9 +658,9 @@
if (challenge.failureResponse().httpStatusCode() == 401)
urlToStore = challenge.failureResponse().url();
CredentialStorage::set(webCredential, ProtectionSpace([d->m_currentMacChallenge protectionSpace]), urlToStore);
- [[d->m_currentMacChallenge sender] useCredential:mac(webCredential) forAuthenticationChallenge:d->m_currentMacChallenge];
+ [[d->m_currentMacChallenge sender] useCredential:webCredential.nsCredential() forAuthenticationChallenge:d->m_currentMacChallenge];
} else
- [[d->m_currentMacChallenge sender] useCredential:mac(credential) forAuthenticationChallenge:d->m_currentMacChallenge];
+ [[d->m_currentMacChallenge sender] useCredential:credential.nsCredential() forAuthenticationChallenge:d->m_currentMacChallenge];
clearAuthentication();
}
Modified: trunk/Source/WebKit/mac/ChangeLog (171800 => 171801)
--- trunk/Source/WebKit/mac/ChangeLog 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebKit/mac/ChangeLog 2014-07-30 18:56:13 UTC (rev 171801)
@@ -1,3 +1,16 @@
+2014-07-30 Dan Bernstein <m...@apple.com>
+
+ Updated for changes to the WebCore::Credential API.
+ Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
+
+ Reviewed by Alexey Proskuryakov.
+
+ * Misc/WebDownload.mm:
+ (-[WebDownloadInternal download:didReceiveAuthenticationChallenge:]): Use new nsCredential
+ getter.
+ * Plugins/WebBaseNetscapePluginView.mm:
+ (WebKit::getAuthenticationInfo): Ditto.
+
2014-07-27 Pratik Solanki <psola...@apple.com>
Remove unused preference keys
Modified: trunk/Source/WebKit/mac/Misc/WebDownload.mm (171800 => 171801)
--- trunk/Source/WebKit/mac/Misc/WebDownload.mm 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebKit/mac/Misc/WebDownload.mm 2014-07-30 18:56:13 UTC (rev 171801)
@@ -128,7 +128,7 @@
#if !PLATFORM(IOS)
// Try previously stored credential first.
if (![challenge previousFailureCount]) {
- NSURLCredential *credential = mac(CredentialStorage::get(ProtectionSpace([challenge protectionSpace])));
+ NSURLCredential *credential = CredentialStorage::get(ProtectionSpace([challenge protectionSpace])).nsCredential();
if (credential) {
[[challenge sender] useCredential:credential forAuthenticationChallenge:challenge];
return;
Modified: trunk/Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm (171800 => 171801)
--- trunk/Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm 2014-07-30 18:56:13 UTC (rev 171801)
@@ -928,7 +928,7 @@
RetainPtr<NSURLProtectionSpace> protectionSpace = adoptNS([[NSURLProtectionSpace alloc] initWithHost:host port:port protocol:protocol realm:realm authenticationMethod:authenticationMethod]);
- NSURLCredential *credential = mac(CredentialStorage::get(ProtectionSpace(protectionSpace.get())));
+ NSURLCredential *credential = CredentialStorage::get(ProtectionSpace(protectionSpace.get())).nsCredential();
if (!credential)
credential = [[NSURLCredentialStorage sharedCredentialStorage] defaultCredentialForProtectionSpace:protectionSpace.get()];
if (!credential)
Modified: trunk/Source/WebKit2/ChangeLog (171800 => 171801)
--- trunk/Source/WebKit2/ChangeLog 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebKit2/ChangeLog 2014-07-30 18:56:13 UTC (rev 171801)
@@ -1,3 +1,31 @@
+2014-07-30 Dan Bernstein <m...@apple.com>
+
+ Updated for changes to the WebCore::Credential API.
+ Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327
+
+ Reviewed by Alexey Proskuryakov.
+
+ * Shared/Downloads/mac/DownloadMac.mm:
+ (WebKit::Download::receivedCredential):Use new Credential::nsCredential getter.
+
+ * Shared/WebCoreArgumentCoders.cpp:
+ (IPC::ArgumentCoder<Credential>::encode): If encoding the credential requires encoding the
+ platform data, do that.
+ (IPC::ArgumentCoder<Credential>::decode): If platform data was encoded, decode it.
+ * Shared/WebCoreArgumentCoders.h:
+
+ * Shared/mac/WebCoreArgumentCodersMac.mm:
+ (IPC::ArgumentCoder<Credential>::encodePlatformData): Archive the NSURLCredential.
+ (IPC::ArgumentCoder<Credential>::decodePlatformData): Unarchive it.
+
+ * UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm:
+ (-[WKNSURLAuthenticationChallengeSender useCredential:forAuthenticationChallenge:]): Use
+ Credential constructor that takes an NSURLCredential.
+
+ * UIProcess/Cocoa/NavigationState.mm:
+ (WebKit::NavigationState::LoaderClient::didReceiveAuthenticationChallengeInFrame): Ditto.
+
+
2014-07-30 Carlos Garcia Campos <cgar...@igalia.com>
[GTK] REGRESSION(r171742): Test /webkit2/WebKitWebView/disallow-modal-dialogs fails
Modified: trunk/Source/WebKit2/Shared/Downloads/mac/DownloadMac.mm (171800 => 171801)
--- trunk/Source/WebKit2/Shared/Downloads/mac/DownloadMac.mm 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebKit2/Shared/Downloads/mac/DownloadMac.mm 2014-07-30 18:56:13 UTC (rev 171801)
@@ -112,7 +112,7 @@
void Download::receivedCredential(const AuthenticationChallenge& authenticationChallenge, const Credential& credential)
{
- [authenticationChallenge.sender() useCredential:mac(credential) forAuthenticationChallenge:authenticationChallenge.nsURLAuthenticationChallenge()];
+ [authenticationChallenge.sender() useCredential:credential.nsCredential() forAuthenticationChallenge:authenticationChallenge.nsURLAuthenticationChallenge()];
}
void Download::receivedRequestToContinueWithoutCredential(const AuthenticationChallenge& authenticationChallenge)
Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp (171800 => 171801)
--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.cpp 2014-07-30 18:56:13 UTC (rev 171801)
@@ -506,57 +506,26 @@
void ArgumentCoder<Credential>::encode(ArgumentEncoder& encoder, const Credential& credential)
{
-#if CERTIFICATE_CREDENTIALS_SUPPORTED
- encoder.encodeEnum(credential.type());
-
- if (credential.type() == CredentialTypeClientCertificate) {
- IPC::encode(encoder, credential.identity());
-
- encoder << !!credential.certificates();
- if (credential.certificates())
- IPC::encode(encoder, credential.certificates());
-
- encoder.encodeEnum(credential.persistence());
+ if (credential.encodingRequiresPlatformData()) {
+ encoder << true;
+ encodePlatformData(encoder, credential);
return;
}
-#endif
- encoder << credential.user() << credential.password();
+ encoder << false;
+ encoder << credential.user() << credential.password();
encoder.encodeEnum(credential.persistence());
}
bool ArgumentCoder<Credential>::decode(ArgumentDecoder& decoder, Credential& credential)
{
-#if CERTIFICATE_CREDENTIALS_SUPPORTED
- CredentialType type;
-
- if (!decoder.decodeEnum(type))
+ bool hasPlatformData;
+ if (!decoder.decode(hasPlatformData))
return false;
- if (type == CredentialTypeClientCertificate) {
- RetainPtr<SecIdentityRef> identity;
- if (!IPC::decode(decoder, identity))
- return false;
+ if (hasPlatformData)
+ return decodePlatformData(decoder, credential);
- bool hasCertificates;
- if (!decoder.decode(hasCertificates))
- return false;
-
- RetainPtr<CFArrayRef> certificates;
- if (hasCertificates) {
- if (!IPC::decode(decoder, certificates))
- return false;
- }
-
- CredentialPersistence persistence;
- if (!decoder.decodeEnum(persistence))
- return false;
-
- credential = Credential(identity.get(), certificates.get(), persistence);
- return true;
- }
-#endif
-
String user;
if (!decoder.decode(user))
return false;
Modified: trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h (171800 => 171801)
--- trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebKit2/Shared/WebCoreArgumentCoders.h 2014-07-30 18:56:13 UTC (rev 171801)
@@ -235,6 +235,8 @@
template<> struct ArgumentCoder<WebCore::Credential> {
static void encode(ArgumentEncoder&, const WebCore::Credential&);
static bool decode(ArgumentDecoder&, WebCore::Credential&);
+ static void encodePlatformData(ArgumentEncoder&, const WebCore::Credential&);
+ static bool decodePlatformData(ArgumentDecoder&, WebCore::Credential&);
};
template<> struct ArgumentCoder<WebCore::Cursor> {
Modified: trunk/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm (171800 => 171801)
--- trunk/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebKit2/Shared/mac/WebCoreArgumentCodersMac.mm 2014-07-30 18:56:13 UTC (rev 171801)
@@ -32,6 +32,7 @@
#import "WebKitSystemInterface.h"
#import <WebCore/CertificateInfo.h>
#import <WebCore/ContentFilter.h>
+#import <WebCore/Credential.h>
#import <WebCore/KeyboardEvent.h>
#import <WebCore/ProtectionSpace.h>
#import <WebCore/ResourceError.h>
@@ -315,6 +316,35 @@
return true;
}
+void ArgumentCoder<Credential>::encodePlatformData(ArgumentEncoder& encoder, const Credential& credential)
+{
+ RetainPtr<NSMutableData> data = "" alloc] init]);
+ RetainPtr<NSKeyedArchiver> archiver = adoptNS([[NSKeyedArchiver alloc] initForWritingWithMutableData:data.get()]);
+ [archiver setRequiresSecureCoding:YES];
+ [archiver encodeObject:credential.nsCredential() forKey:@"credential"];
+ [archiver finishEncoding];
+ IPC::encode(encoder, reinterpret_cast<CFDataRef>(data.get()));
+}
+
+bool ArgumentCoder<Credential>::decodePlatformData(ArgumentDecoder& decoder, Credential& credential)
+{
+ RetainPtr<CFDataRef> data;
+ if (!IPC::decode(decoder, data))
+ return false;
+
+ RetainPtr<NSKeyedUnarchiver> unarchiver = adoptNS([[NSKeyedUnarchiver alloc] initForReadingWithData:(NSData *)data.get()]);
+ [unarchiver setRequiresSecureCoding:YES];
+ @try {
+ if (RetainPtr<NSURLCredential> nsCredential = [unarchiver decodeObjectOfClass:[NSURLCredential class] forKey:@"credential"])
+ credential = Credential(nsCredential.get());
+ } @catch (NSException *exception) {
+ LOG_ERROR("Failed to decode NSURLCredential: %@", exception);
+ }
+
+ [unarchiver finishDecoding];
+ return true;
+}
+
void ArgumentCoder<KeypressCommand>::encode(ArgumentEncoder& encoder, const KeypressCommand& keypressCommand)
{
encoder << keypressCommand.commandName << keypressCommand.text;
Modified: trunk/Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp (171800 => 171801)
--- trunk/Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebKit2/Shared/soup/WebCoreArgumentCodersSoup.cpp 2014-07-30 18:56:13 UTC (rev 171801)
@@ -152,5 +152,16 @@
return false;
}
+void ArgumentCoder<Credential>::encodePlatformData(ArgumentEncoder&, const Credential&)
+{
+ ASSERT_NOT_REACHED();
}
+bool ArgumentCoder<Credential>::decodePlatformData(ArgumentDecoder&, Credential&)
+{
+ ASSERT_NOT_REACHED();
+ return false;
+}
+
+}
+
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm (171800 => 171801)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm 2014-07-30 18:56:13 UTC (rev 171801)
@@ -87,7 +87,7 @@
{
checkChallenge(challenge);
AuthenticationChallengeProxy& webChallenge = ((WKNSURLAuthenticationChallenge *)challenge)._web_authenticationChallengeProxy;
- webChallenge.listener()->useCredential(WebCredential::create(core(credential)).get());
+ webChallenge.listener()->useCredential(WebCredential::create(Credential(credential)).get());
}
- (void)performDefaultHandlingForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
Modified: trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm (171800 => 171801)
--- trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm 2014-07-30 16:49:33 UTC (rev 171800)
+++ trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm 2014-07-30 18:56:13 UTC (rev 171801)
@@ -56,7 +56,7 @@
#import "WebProcessProxy.h"
#import "_WKErrorRecoveryAttempting.h"
#import "_WKFrameHandleInternal.h"
-#import <WebCore/AuthenticationMac.h>
+#import <WebCore/Credential.h>
#import <wtf/NeverDestroyed.h>
#if USE(QUICK_LOOK)
@@ -724,7 +724,7 @@
case NSURLSessionAuthChallengeUseCredential: {
RefPtr<WebCredential> webCredential;
if (credential)
- webCredential = WebCredential::create(WebCore::core(credential));
+ webCredential = WebCredential::create(WebCore::Credential(credential));
challenge->listener()->useCredential(webCredential.get());
break;