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

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: Fix rebase. Created 4 years, 11 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
« no previous file with comments | « chromecast/browser/cast_content_browser_client.h ('k') | chromecast/browser/cast_network_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 5b475eff047206108e46af4e9b7fa883a1a51706..d1d1d69a18a9d24ce2c17af1d7a488cef3f4d861 100644
--- a/chromecast/browser/cast_content_browser_client.cc
+++ b/chromecast/browser/cast_content_browser_client.cc
@@ -48,6 +48,7 @@
#include "content/public/common/url_constants.h"
#include "content/public/common/web_preferences.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"
@@ -284,7 +285,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;
}
@@ -298,32 +299,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(std::move(delegate)),
+ 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* private_key = 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();
+ private_key = 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(private_key)));
}
bool CastContentBrowserClient::CanCreateWindow(
« no previous file with comments | « chromecast/browser/cast_content_browser_client.h ('k') | chromecast/browser/cast_network_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698