Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: chromecast/browser/cast_content_browser_client.cc

Issue 1304143010: Plumbing SSLPrivateKey Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chromecast/browser/cast_content_browser_client.cc
diff --git a/chromecast/browser/cast_content_browser_client.cc b/chromecast/browser/cast_content_browser_client.cc
index b12a2307eeed662e7195fea43297546d2038cbee..1409765fb53ace15bef26156018644ae19334012 100644
--- a/chromecast/browser/cast_content_browser_client.cc
+++ b/chromecast/browser/cast_content_browser_client.cc
@@ -45,6 +45,7 @@
#include "content/public/common/web_preferences.h"
#include "media/audio/audio_manager_factory.h"
#include "net/ssl/ssl_cert_request_info.h"
+#include "net/ssl/ssl_platform_key.h"
#include "net/url_request/url_request_context_getter.h"
#include "ui/gl/gl_switches.h"
@@ -302,7 +303,7 @@ void CastContentBrowserClient::SelectClientCertificate(
if (!requesting_url.is_valid()) {
LOG(ERROR) << "Invalid URL string: "
<< requesting_url.possibly_invalid_spec();
- delegate->ContinueWithCertificate(nullptr);
+ delegate->ContinueWithCertificate(nullptr, nullptr);
return;
}
@@ -316,32 +317,40 @@ void CastContentBrowserClient::SelectClientCertificate(
//
// TODO(davidben): Stop using child ID to identify an app.
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
- content::BrowserThread::PostTaskAndReplyWithResult(
+ content::BrowserThread::PostTask(
content::BrowserThread::IO, FROM_HERE,
base::Bind(&CastContentBrowserClient::SelectClientCertificateOnIOThread,
- base::Unretained(this), requesting_url,
- web_contents->GetRenderProcessHost()->GetID()),
- base::Bind(&content::ClientCertificateDelegate::ContinueWithCertificate,
- base::Owned(delegate.release())));
+ base::Unretained(this), base::Passed(delegate.Pass()),
+ requesting_url,
+ web_contents->GetRenderProcessHost()->GetID()));
}
-net::X509Certificate*
-CastContentBrowserClient::SelectClientCertificateOnIOThread(
+void CastContentBrowserClient::SelectClientCertificateOnIOThread(
+ scoped_ptr<content::ClientCertificateDelegate> delegate,
GURL requesting_url,
int render_process_id) {
+ net::X509Certificate* cert = nullptr;
+ net::SSLPrivateKey* pkey = nullptr;
+
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
CastNetworkDelegate* network_delegate =
url_request_context_factory_->app_network_delegate();
if (network_delegate->IsWhitelisted(requesting_url,
render_process_id, false)) {
- return CastNetworkDelegate::DeviceCert();
+ cert = CastNetworkDelegate::DeviceCert();
+ pkey = CastNetworkDelegate::DeviceKey();
} else {
LOG(ERROR) << "Invalid host for client certificate request: "
<< requesting_url.host()
<< " with render_process_id: "
<< render_process_id;
- return NULL;
}
+
+ content::BrowserThread::PostTask(
+ content::BrowserThread::UI, FROM_HERE,
+ base::Bind(&content::ClientCertificateDelegate::ContinueWithCertificate,
+ base::Owned(delegate.release()), make_scoped_refptr(cert),
+ make_scoped_refptr(pkey)));
}
bool CastContentBrowserClient::CanCreateWindow(

Powered by Google App Engine
This is Rietveld 408576698