1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_BROWSER_LOADER_RESOURCE_LOADER_DELEGATE_H_ 6 #define CONTENT_BROWSER_LOADER_RESOURCE_LOADER_DELEGATE_H_ 7 8 #include "content/common/content_export.h" 9 10 namespace net { 11 class AuthChallengeInfo; 12 class SSLCertRequestInfo; 13 } 14 15 namespace content { 16 class ResourceDispatcherHostLoginDelegate; 17 class ResourceLoader; 18 19 class CONTENT_EXPORT ResourceLoaderDelegate { 20 public: 21 virtual ResourceDispatcherHostLoginDelegate* CreateLoginDelegate( 22 ResourceLoader* loader, 23 net::AuthChallengeInfo* auth_info) = 0; 24 25 virtual bool AcceptAuthRequest(ResourceLoader* loader, 26 net::AuthChallengeInfo* auth_info) = 0; 27 virtual bool AcceptSSLClientCertificateRequest( 28 ResourceLoader* loader, 29 net::SSLCertRequestInfo* cert_info) = 0; 30 31 virtual bool HandleExternalProtocol(ResourceLoader* loader, 32 const GURL& url) = 0; 33 34 virtual void DidStartRequest(ResourceLoader* loader) = 0; 35 virtual void DidReceiveRedirect(ResourceLoader* loader, 36 const GURL& new_url) = 0; 37 virtual void DidReceiveResponse(ResourceLoader* loader) = 0; 38 39 // This method informs the delegate that the loader is done, and the loader 40 // expects to be destroyed as a side-effect of this call. 41 virtual void DidFinishLoading(ResourceLoader* loader) = 0; 42 43 protected: 44 virtual ~ResourceLoaderDelegate() {} 45 }; 46 47 } // namespace content 48 49 #endif // CONTENT_BROWSER_LOADER_RESOURCE_LOADER_DELEGATE_H_ 50