summaryrefslogtreecommitdiffstats
path: root/content/browser/loader/resource_loader.cc
diff options
context:
space:
mode:
authormattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-30 04:46:20 +0000
committermattm@chromium.org <mattm@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-30 04:46:20 +0000
commit1ccb699d0f1cf0b36fd045e7f2fbc93490b4fe9e (patch)
tree21d9d3f841018f9806615c5d118368fd5a654cda /content/browser/loader/resource_loader.cc
parent979574d0beda1f79337b1398c24d27d53351f517 (diff)
downloadchromium_src-1ccb699d0f1cf0b36fd045e7f2fbc93490b4fe9e.zip
chromium_src-1ccb699d0f1cf0b36fd045e7f2fbc93490b4fe9e.tar.gz
chromium_src-1ccb699d0f1cf0b36fd045e7f2fbc93490b4fe9e.tar.bz2
Get ClientCertStore through ResourceContext.
Make ClientCertStore::GetClientCerts asynchronous. BUG=302125 Review URL: https://codereview.chromium.org/42773002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231750 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/loader/resource_loader.cc')
-rw-r--r--content/browser/loader/resource_loader.cc59
1 files changed, 15 insertions, 44 deletions
diff --git a/content/browser/loader/resource_loader.cc b/content/browser/loader/resource_loader.cc
index 55add72..846ad31 100644
--- a/content/browser/loader/resource_loader.cc
+++ b/content/browser/loader/resource_loader.cc
@@ -16,6 +16,7 @@
#include "content/browser/ssl/ssl_manager.h"
#include "content/common/ssl_status_serialization.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"
#include "content/public/browser/site_instance.h"
#include "content/public/common/content_client.h"
@@ -27,7 +28,6 @@
#include "net/base/load_flags.h"
#include "net/http/http_response_headers.h"
#include "net/ssl/client_cert_store.h"
-#include "net/ssl/client_cert_store_impl.h"
#include "webkit/browser/appcache/appcache_interceptor.h"
using base::TimeDelta;
@@ -67,12 +67,16 @@ void PopulateResourceResponse(net::URLRequest* request,
ResourceLoader::ResourceLoader(scoped_ptr<net::URLRequest> request,
scoped_ptr<ResourceHandler> handler,
ResourceLoaderDelegate* delegate)
- : weak_ptr_factory_(this) {
- scoped_ptr<net::ClientCertStore> client_cert_store;
-#if !defined(USE_OPENSSL)
- client_cert_store.reset(new net::ClientCertStoreImpl());
-#endif
- Init(request.Pass(), handler.Pass(), delegate, client_cert_store.Pass());
+ : deferred_stage_(DEFERRED_NONE),
+ request_(request.Pass()),
+ handler_(handler.Pass()),
+ delegate_(delegate),
+ last_upload_position_(0),
+ waiting_for_upload_progress_ack_(false),
+ is_transferring_(false),
+ weak_ptr_factory_(this) {
+ request_->set_delegate(this);
+ handler_->SetController(this);
}
ResourceLoader::~ResourceLoader() {
@@ -189,32 +193,6 @@ void ResourceLoader::OnUploadProgressACK() {
waiting_for_upload_progress_ack_ = false;
}
-ResourceLoader::ResourceLoader(
- scoped_ptr<net::URLRequest> request,
- scoped_ptr<ResourceHandler> handler,
- ResourceLoaderDelegate* delegate,
- scoped_ptr<net::ClientCertStore> client_cert_store)
- : weak_ptr_factory_(this) {
- Init(request.Pass(), handler.Pass(), delegate, client_cert_store.Pass());
-}
-
-void ResourceLoader::Init(scoped_ptr<net::URLRequest> request,
- scoped_ptr<ResourceHandler> handler,
- ResourceLoaderDelegate* delegate,
- scoped_ptr<net::ClientCertStore> client_cert_store) {
- deferred_stage_ = DEFERRED_NONE;
- request_ = request.Pass();
- handler_ = handler.Pass();
- delegate_ = delegate;
- last_upload_position_ = 0;
- waiting_for_upload_progress_ack_ = false;
- is_transferring_ = false;
- client_cert_store_ = client_cert_store.Pass();
-
- request_->set_delegate(this);
- handler_->SetController(this);
-}
-
void ResourceLoader::OnReceivedRedirect(net::URLRequest* unused,
const GURL& new_url,
bool* defer) {
@@ -289,19 +267,12 @@ void ResourceLoader::OnCertificateRequested(
return;
}
-#if !defined(USE_OPENSSL)
- client_cert_store_->GetClientCerts(*cert_info, &cert_info->client_certs);
- if (cert_info->client_certs.empty()) {
- // No need to query the user if there are no certs to choose from.
- request_->ContinueWithCertificate(NULL);
- return;
- }
-#endif
-
DCHECK(!ssl_client_auth_handler_.get())
<< "OnCertificateRequested called with ssl_client_auth_handler pending";
- ssl_client_auth_handler_ = new SSLClientAuthHandler(request_.get(),
- cert_info);
+ ssl_client_auth_handler_ = new SSLClientAuthHandler(
+ GetRequestInfo()->GetContext()->CreateClientCertStore(),
+ request_.get(),
+ cert_info);
ssl_client_auth_handler_->SelectCertificate();
}