Chromium Code Reviews| Index: content/browser/renderer_host/resource_dispatcher_host.cc |
| diff --git a/content/browser/renderer_host/resource_dispatcher_host.cc b/content/browser/renderer_host/resource_dispatcher_host.cc |
| index 3000f502c579d1df846ba96d1fe688e5f2325861..bf2e0c36578421654948719b7be542148840143a 100644 |
| --- a/content/browser/renderer_host/resource_dispatcher_host.cc |
| +++ b/content/browser/renderer_host/resource_dispatcher_host.cc |
| @@ -389,6 +389,62 @@ ResourceDispatcherHost::CreateResourceHandlerForDownload( |
| return handler; |
| } |
| +ResourceType::Type ResourceDispatcherHost::ResourceTypeForInstance( |
| + const SSLErrorHandler::instance_id& id) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| + net::URLRequest* request = GetURLRequest(id); |
| + DCHECK(request); |
| + ResourceDispatcherHostRequestInfo* info = InfoForRequest(request); |
| + DCHECK(info); |
| + return info->resource_type(); |
| +} |
| + |
| +const GURL& ResourceDispatcherHost::URLForInstance( |
| + const SSLErrorHandler::instance_id& id) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| + net::URLRequest* request = GetURLRequest(id); |
| + DCHECK(request); |
| + return request->url(); |
| +} |
| + |
| +bool ResourceDispatcherHost::RenderViewForInstance( |
| + const SSLErrorHandler::instance_id& id, |
| + int* render_process_host_id, |
| + int* render_view_host_id) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| + return RenderViewForRequest( |
| + GetURLRequest(id), render_process_host_id, render_view_host_id); |
| +} |
| + |
| +void ResourceDispatcherHost::CancelRequestForInstance( |
| + const SSLErrorHandler::instance_id& id, |
| + int error, |
| + const net::SSLInfo* ssl_info) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| + net::URLRequest* request = GetURLRequest(id); |
| + // The request can be NULL if it was cancelled by the renderer (as the |
| + // request of the user navigating to a new page from the location bar). |
| + if (!request) |
| + return; |
| + DVLOG(1) << "CancelRequestForInstance() url: " << request->url().spec(); |
| + if (ssl_info) |
| + request->SimulateSSLError(error, *ssl_info); |
| + else |
| + request->SimulateError(error); |
| +} |
| + |
| +void ResourceDispatcherHost::ContinueRequestForInstance( |
| + const SSLErrorHandler::instance_id&id) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| + net::URLRequest* request = GetURLRequest(id); |
| + // The request can be NULL if it was cancelled by the renderer (as the |
| + // request of the user navigating to a new page from the location bar). |
| + if (!request) |
| + return; |
| + DVLOG(1) << "ContinueRequestForInstance() url: " << request->url().spec(); |
| + request->ContinueDespiteLastError(); |
| +} |
| + |
| void ResourceDispatcherHost::SetRequestInfo( |
| net::URLRequest* request, |
| ResourceDispatcherHostRequestInfo* info) { |
| @@ -1429,7 +1485,11 @@ void ResourceDispatcherHost::OnSSLCertificateError( |
| const net::SSLInfo& ssl_info, |
| bool is_hsts_host) { |
| DCHECK(request); |
| - SSLManager::OnSSLCertificateError(this, request, ssl_info, is_hsts_host); |
| + ResourceDispatcherHostRequestInfo* info = InfoForRequest(request); |
| + SSLErrorHandler::instance_id instance; |
|
wtc
2012/02/22 00:36:23
Nit: 'error_handler_id' seems more clear than 'ins
Takashi Toyoshima
2012/02/22 08:15:35
Now, 'request_id' looks better as instance of Glob
|
| + instance.first = info->child_id(); |
| + instance.second = info->request_id(); |
| + SSLManager::OnSSLCertificateError(this, instance, ssl_info, is_hsts_host); |
| } |
| bool ResourceDispatcherHost::CanGetCookies( |
| @@ -1982,6 +2042,14 @@ net::URLRequest* ResourceDispatcherHost::GetURLRequest( |
| return i->second; |
| } |
| +net::URLRequest* ResourceDispatcherHost::GetURLRequest( |
| + const SSLErrorHandler::instance_id& id) const { |
| + content::GlobalRequestID request_id; |
| + request_id.child_id = id.first; |
| + request_id.request_id = id.second; |
| + return GetURLRequest(request_id); |
| +} |
| + |
| static int GetCertID(net::URLRequest* request, int child_id) { |
| if (request->ssl_info().cert) { |
| return CertStore::GetInstance()->StoreCert(request->ssl_info().cert, |