Chromium Code Reviews| Index: content/browser/renderer_host/crypto_file_resource_handler.cc |
| diff --git a/content/browser/renderer_host/x509_user_cert_resource_handler.cc b/content/browser/renderer_host/crypto_file_resource_handler.cc |
| similarity index 59% |
| rename from content/browser/renderer_host/x509_user_cert_resource_handler.cc |
| rename to content/browser/renderer_host/crypto_file_resource_handler.cc |
| index aa3fe34e533f1c28c18d93e0a598201272df1560..4cb77d10f3deadbf3594e9b9a61fb70f1284cb3f 100644 |
| --- a/content/browser/renderer_host/x509_user_cert_resource_handler.cc |
| +++ b/content/browser/renderer_host/crypto_file_resource_handler.cc |
| @@ -2,7 +2,7 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| -#include "content/browser/renderer_host/x509_user_cert_resource_handler.h" |
| +#include "content/browser/renderer_host/crypto_file_resource_handler.h" |
| #include "base/string_util.h" |
| #include "content/browser/renderer_host/resource_request_info_impl.h" |
| @@ -11,14 +11,13 @@ |
| #include "net/base/io_buffer.h" |
| #include "net/base/mime_sniffer.h" |
| #include "net/base/mime_util.h" |
| -#include "net/base/x509_certificate.h" |
| #include "net/http/http_response_headers.h" |
| #include "net/url_request/url_request.h" |
| #include "net/url_request/url_request_status.h" |
| namespace content { |
| -X509UserCertResourceHandler::X509UserCertResourceHandler( |
| +CryptoFileResourceHandler::CryptoFileResourceHandler( |
| net::URLRequest* request, |
| int render_process_host_id, |
| int render_view_id) |
| @@ -27,42 +26,44 @@ X509UserCertResourceHandler::X509UserCertResourceHandler( |
| read_buffer_(NULL), |
| resource_buffer_(NULL), |
| render_process_host_id_(render_process_host_id), |
| - render_view_id_(render_view_id) { |
| + render_view_id_(render_view_id), |
| + file_type_(net::CRYPTO_FILE_TYPE_UNKNOWN) { |
| } |
| -X509UserCertResourceHandler::~X509UserCertResourceHandler() { |
| +CryptoFileResourceHandler::~CryptoFileResourceHandler() { |
| } |
| -bool X509UserCertResourceHandler::OnUploadProgress(int request_id, |
| - uint64 position, |
| - uint64 size) { |
| +bool CryptoFileResourceHandler::OnUploadProgress(int request_id, |
| + uint64 position, |
| + uint64 size) { |
| return true; |
| } |
| -bool X509UserCertResourceHandler::OnRequestRedirected(int request_id, |
| - const GURL& url, |
| - ResourceResponse* resp, |
| - bool* defer) { |
| +bool CryptoFileResourceHandler::OnRequestRedirected(int request_id, |
| + const GURL& url, |
| + ResourceResponse* resp, |
| + bool* defer) { |
| url_ = url; |
| return true; |
| } |
| -bool X509UserCertResourceHandler::OnResponseStarted(int request_id, |
| - ResourceResponse* resp, |
| - bool* defer) { |
| - return (resp->head.mime_type == "application/x-x509-user-cert"); |
| +bool CryptoFileResourceHandler::OnResponseStarted(int request_id, |
| + ResourceResponse* resp, |
| + bool* defer) { |
| + file_type_ = net::GetCryptoFileTypeForMimeType(resp->head.mime_type); |
| + return file_type_ != net::CRYPTO_FILE_TYPE_UNKNOWN; |
| } |
| -bool X509UserCertResourceHandler::OnWillStart(int request_id, |
| - const GURL& url, |
| - bool* defer) { |
| +bool CryptoFileResourceHandler::OnWillStart(int request_id, |
| + const GURL& url, |
| + bool* defer) { |
| return true; |
| } |
| -bool X509UserCertResourceHandler::OnWillRead(int request_id, |
| - net::IOBuffer** buf, |
| - int* buf_size, |
| - int min_size) { |
| +bool CryptoFileResourceHandler::OnWillRead(int request_id, |
| + net::IOBuffer** buf, |
| + int* buf_size, |
| + int min_size) { |
| static const int kReadBufSize = 32768; |
| // TODO(gauravsh): Should we use 'min_size' here? |
| @@ -76,9 +77,9 @@ bool X509UserCertResourceHandler::OnWillRead(int request_id, |
| return true; |
| } |
| -bool X509UserCertResourceHandler::OnReadCompleted(int request_id, |
| - int bytes_read, |
| - bool* defer) { |
| +bool CryptoFileResourceHandler::OnReadCompleted(int request_id, |
| + int bytes_read, |
| + bool* defer) { |
| if (!bytes_read) |
| return true; |
| @@ -96,7 +97,7 @@ bool X509UserCertResourceHandler::OnReadCompleted(int request_id, |
| return true; |
| } |
| -bool X509UserCertResourceHandler::OnResponseCompleted( |
| +bool CryptoFileResourceHandler::OnResponseCompleted( |
| int request_id, |
| const net::URLRequestStatus& urs, |
| const std::string& sec_info) { |
| @@ -104,17 +105,20 @@ bool X509UserCertResourceHandler::OnResponseCompleted( |
| return false; |
| AssembleResource(); |
| - scoped_refptr<net::X509Certificate> cert; |
| - if (resource_buffer_) { |
| - cert = net::X509Certificate::CreateFromBytes(resource_buffer_->data(), |
| - content_length_); |
| - } |
| - GetContentClient()->browser()->AddNewCertificate( |
| - request_, cert, render_process_host_id_, render_view_id_); |
| + |
| + const void* content_bytes = NULL; |
| + if (resource_buffer_) |
| + content_bytes = resource_buffer_->data(); |
| + |
| + // Note that it's up to the browser to handle verification. |
|
Ryan Sleevi
2012/10/24 22:01:25
It's not verification - it's parsing. The browser
digit1
2012/10/25 13:57:38
Sure, will fix.
|
| + content::GetContentClient()->browser()->AddNewCryptoFile( |
| + request_, file_type_, content_bytes, content_length_, |
| + render_process_host_id_, render_view_id_); |
| + |
| return true; |
| } |
| -void X509UserCertResourceHandler::AssembleResource() { |
| +void CryptoFileResourceHandler::AssembleResource() { |
| // 0-length IOBuffers are not allowed. |
| if (content_length_ == 0) { |
| resource_buffer_ = NULL; |