[webkit-reviews] review granted: [Bug 38271] Add canAuthenticateAgainstProtectionSpace() to frame loader so that a protection space can be inspected before attempting to authenticate against it : [Attachment 54610] Fixed enum indentation for style-bot
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Wed Apr 28 13:39:46 PDT 2010
David Kilzer (ddkilzer) <ddkilzer at webkit.org> has granted Mike Thole
<mthole at mikethole.com>'s request for review:
Bug 38271: Add canAuthenticateAgainstProtectionSpace() to frame loader so that
a protection space can be inspected before attempting to authenticate against
it
https://bugs.webkit.org/show_bug.cgi?id=38271
Attachment 54610: Fixed enum indentation for style-bot
https://bugs.webkit.org/attachment.cgi?id=54610&action=review
------- Additional Comments from David Kilzer (ddkilzer) <ddkilzer at webkit.org>
> Index: JavaScriptCore/wtf/Platform.h
> ===================================================================
> --- JavaScriptCore/wtf/Platform.h (revision 58413)
> +++ JavaScriptCore/wtf/Platform.h (working copy)
> @@ -1079,6 +1079,10 @@ on MinGW. See https://bugs.webkit.org/sh
> #endif
> #endif
>
> +#if ((PLATFORM(MAC) || PLATFORM(IPHONE)) && !defined(BUILDING_ON_TIGER) &&
!defined(BUILDING_ON_LEOPARD))
> +#define WTF_USE_PROTECTION_SPACE_AUTH_CALLBACK 1
> +#endif
This should be:
#if (PLATFORM(MAC) && !defined(BUILDING_ON_TIGER) &&
!defined(BUILDING_ON_LEOPARD)) || PLATFORM(IPHONE)
> Index: WebCore/loader/EmptyClients.h
> ===================================================================
> --- WebCore/loader/EmptyClients.h (revision 58413)
> +++ WebCore/loader/EmptyClients.h (working copy)
> @@ -194,6 +194,7 @@ public:
> virtual void dispatchWillSendRequest(DocumentLoader*, unsigned long,
ResourceRequest&, const ResourceResponse&) { }
> virtual void dispatchDidReceiveAuthenticationChallenge(DocumentLoader*,
unsigned long, const AuthenticationChallenge&) { }
> virtual void dispatchDidCancelAuthenticationChallenge(DocumentLoader*,
unsigned long, const AuthenticationChallenge&) { }
> + virtual bool canAuthenticateAgainstProtectionSpace(DocumentLoader*,
unsigned long, const ProtectionSpace&) { return false; }
This should have #if USE(PROTECTION_SPACE_AUTH_CALLBACK)/#endif macro guards.
> Index: WebCore/platform/network/ResourceHandle.h
> ===================================================================
> --- WebCore/platform/network/ResourceHandle.h (revision 58413)
> +++ WebCore/platform/network/ResourceHandle.h (working copy)
> @@ -131,6 +132,7 @@ public:
>
> #if PLATFORM(MAC)
> void didCancelAuthenticationChallenge(const AuthenticationChallenge&);
> + bool canAuthenticateAgainstProtectionSpace(const ProtectionSpace&);
> NSURLConnection *connection() const;
> WebCoreResourceHandleAsDelegate *delegate();
> void releaseDelegate();
This should have #if USE(PROTECTION_SPACE_AUTH_CALLBACK)/#endif macro guards.
> Index: WebCore/platform/network/ResourceHandleClient.h
> ===================================================================
> --- WebCore/platform/network/ResourceHandleClient.h (revision 58413)
> +++ WebCore/platform/network/ResourceHandleClient.h (working copy)
> @@ -78,6 +79,7 @@ namespace WebCore {
> virtual bool shouldUseCredentialStorage(ResourceHandle*) { return
false; }
> virtual void didReceiveAuthenticationChallenge(ResourceHandle*,
const AuthenticationChallenge&) { }
> virtual void didCancelAuthenticationChallenge(ResourceHandle*, const
AuthenticationChallenge&) { }
> + virtual bool canAuthenticateAgainstProtectionSpace(ResourceHandle*,
const ProtectionSpace&) { return false; }
> virtual void receivedCancellation(ResourceHandle*, const
AuthenticationChallenge&) { }
This should have #if USE(PROTECTION_SPACE_AUTH_CALLBACK)/#endif macro guards.
> Index: WebCore/platform/network/mac/AuthenticationMac.mm
> ===================================================================
> --- WebCore/platform/network/mac/AuthenticationMac.mm (revision 58413)
> +++ WebCore/platform/network/mac/AuthenticationMac.mm (working copy)
> @@ -194,6 +194,14 @@ NSURLProtectionSpace *mac(const Protecti
> case ProtectionSpaceAuthenticationSchemeHTMLForm:
> method = NSURLAuthenticationMethodHTMLForm;
> break;
> +#if USE(PROTECTION_SPACE_AUTH_CALLBACK)
> + case
ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested:
> + method = NSURLAuthenticationMethodServerTrust;
> + break;
> + case ProtectionSpaceAuthenticationSchemeClientCertificateRequested:
> + method = NSURLAuthenticationMethodClientCertificate;
> + break;
> +#endif
> case ProtectionSpaceAuthenticationSchemeNTLM:
> method = NSURLAuthenticationMethodNTLM;
> break;
These case statements should be after ProtectionSpaceAuthenticationSchemeNTLM
to keep the order in the enum definitions.
> @@ -293,6 +301,12 @@ ProtectionSpace core(NSURLProtectionSpac
> scheme = ProtectionSpaceAuthenticationSchemeHTTPDigest;
> else if ([method isEqualToString:NSURLAuthenticationMethodHTMLForm])
> scheme = ProtectionSpaceAuthenticationSchemeHTMLForm;
> +#if USE(PROTECTION_SPACE_AUTH_CALLBACK)
> + else if ([method
isEqualToString:NSURLAuthenticationMethodClientCertificate])
> + scheme =
ProtectionSpaceAuthenticationSchemeClientCertificateRequested;
> + else if ([method isEqualToString:NSURLAuthenticationMethodServerTrust])
> + scheme =
ProtectionSpaceAuthenticationSchemeServerTrustEvaluationRequested;
> +#endif
> else if ([method isEqualToString:NSURLAuthenticationMethodNTLM])
> scheme = ProtectionSpaceAuthenticationSchemeNTLM;
> else {
Ditto.
> Index: WebKit/mac/WebView/WebDelegateImplementationCaching.h
> ===================================================================
> --- WebKit/mac/WebView/WebDelegateImplementationCaching.h (revision
58413)
> +++ WebKit/mac/WebView/WebDelegateImplementationCaching.h (working copy)
> @@ -35,6 +35,7 @@
> struct WebResourceDelegateImplementationCache {
> IMP didCancelAuthenticationChallengeFunc;
> IMP didReceiveAuthenticationChallengeFunc;
> + IMP canAuthenticateAgainstProtectionSpaceFunc;
> IMP identifierForRequestFunc;
> IMP willSendRequestFunc;
> IMP didReceiveResponseFunc;
This should have #if USE(PROTECTION_SPACE_AUTH_CALLBACK)/#endif macro guards.
> Index: WebKit/mac/WebView/WebResourceLoadDelegatePrivate.h
> ===================================================================
> --- WebKit/mac/WebView/WebResourceLoadDelegatePrivate.h (revision
58413)
> +++ WebKit/mac/WebView/WebResourceLoadDelegatePrivate.h (working copy)
> @@ -43,6 +43,14 @@ @interface NSObject (WebResourceLoadDele
> +/*!
> + @method
webView:resource:canAuthenticateAgainstProtectionSpace:forDataSource:
> + @abstract Inspect an NSURLProtectionSpace before an authentication attempt
is made
> + @param protectionSpace an NSURLProtectionSpace that will be used to
generate an authentication challenge
> + @result Return YES if the resource load delegate is prepared to respond to
an authentication challenge generated with protectionSpace, NO otherwise
> + */
> +- (BOOL)webView:(WebView *)sender resource:(id)identifier
canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace
forDataSource:(WebDataSource *)dataSource;
This needs some kind of #if/#endif protection so it can't be used on Tiger or
Leopard.
> Index: WebKit/mac/WebView/WebView.mm
> ===================================================================
> --- WebKit/mac/WebView/WebView.mm (revision 58413)
> +++ WebKit/mac/WebView/WebView.mm (working copy)
> @@ -1377,6 +1377,7 @@ - (void)_cacheResourceLoadDelegateImplem
> cache->didFinishLoadingFromDataSourceFunc = getMethod(delegate,
@selector(webView:resource:didFinishLoadingFromDataSource:));
> cache->didLoadResourceFromMemoryCacheFunc = getMethod(delegate,
@selector(webView:didLoadResourceFromMemoryCache:response:length:fromDataSource
:));
> cache->didReceiveAuthenticationChallengeFunc = getMethod(delegate,
@selector(webView:resource:didReceiveAuthenticationChallenge:fromDataSource:));
> + cache->canAuthenticateAgainstProtectionSpaceFunc = getMethod(delegate,
@selector(webView:resource:canAuthenticateAgainstProtectionSpace:forDataSource:
));
> cache->didReceiveContentLengthFunc = getMethod(delegate,
@selector(webView:resource:didReceiveContentLength:fromDataSource:));
> cache->didReceiveResponseFunc = getMethod(delegate,
@selector(webView:resource:didReceiveResponse:fromDataSource:));
> cache->identifierForRequestFunc = getMethod(delegate,
@selector(webView:identifierForInitialRequest:fromDataSource:));
This should have #if USE(PROTECTION_SPACE_AUTH_CALLBACK)/#endif macro guards.
r=me with the fixes above.
More information about the webkit-reviews
mailing list