Index: content/browser/loader/resource_loader.cc |
diff --git a/content/browser/loader/resource_loader.cc b/content/browser/loader/resource_loader.cc |
index b462a68d038aa69ba606ff06d2fd902ae829310b..10507fd1bf4fa4da666dc12b14ef646fac86cdbc 100644 |
--- a/content/browser/loader/resource_loader.cc |
+++ b/content/browser/loader/resource_loader.cc |
@@ -19,6 +19,7 @@ |
#include "content/browser/ssl/ssl_client_auth_handler.h" |
#include "content/browser/ssl/ssl_manager.h" |
#include "content/common/ssl_status_serialization.h" |
+#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/cert_store.h" |
#include "content/public/browser/resource_context.h" |
#include "content/public/browser/resource_dispatcher_host_login_delegate.h" |
@@ -852,7 +853,9 @@ void ResourceLoader::RecordHistograms() { |
} |
void ResourceLoader::ContinueWithCertificate(net::X509Certificate* cert) { |
- ssl_client_auth_handler_.reset(); |
+ // Don't delete |ssl_client_auth_handler_| while it is still on the stack. |
+ BrowserThread::DeleteSoon(BrowserThread::IO, FROM_HERE, |
+ ssl_client_auth_handler_.release()); |
request_->ContinueWithCertificate(cert); |
} |