| Index: content/browser/loader/x509_user_cert_resource_handler.cc
|
| diff --git a/content/browser/loader/x509_user_cert_resource_handler.cc b/content/browser/loader/x509_user_cert_resource_handler.cc
|
| deleted file mode 100644
|
| index 0d37ebabe5a5bfb578e04a77c3352f2bb70e254a..0000000000000000000000000000000000000000
|
| --- a/content/browser/loader/x509_user_cert_resource_handler.cc
|
| +++ /dev/null
|
| @@ -1,140 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "content/browser/loader/x509_user_cert_resource_handler.h"
|
| -
|
| -#include "base/string_util.h"
|
| -#include "content/browser/loader/resource_request_info_impl.h"
|
| -#include "content/public/browser/content_browser_client.h"
|
| -#include "content/public/common/resource_response.h"
|
| -#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(
|
| - net::URLRequest* request,
|
| - int render_process_host_id,
|
| - int render_view_id)
|
| - : request_(request),
|
| - content_length_(0),
|
| - read_buffer_(NULL),
|
| - resource_buffer_(NULL),
|
| - render_process_host_id_(render_process_host_id),
|
| - render_view_id_(render_view_id) {
|
| -}
|
| -
|
| -X509UserCertResourceHandler::~X509UserCertResourceHandler() {
|
| -}
|
| -
|
| -bool X509UserCertResourceHandler::OnUploadProgress(int request_id,
|
| - uint64 position,
|
| - uint64 size) {
|
| - return true;
|
| -}
|
| -
|
| -bool X509UserCertResourceHandler::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 X509UserCertResourceHandler::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) {
|
| - static const int kReadBufSize = 32768;
|
| -
|
| - // TODO(gauravsh): Should we use 'min_size' here?
|
| - DCHECK(buf && buf_size);
|
| - if (!read_buffer_) {
|
| - read_buffer_ = new net::IOBuffer(kReadBufSize);
|
| - }
|
| - *buf = read_buffer_.get();
|
| - *buf_size = kReadBufSize;
|
| -
|
| - return true;
|
| -}
|
| -
|
| -bool X509UserCertResourceHandler::OnReadCompleted(int request_id,
|
| - int bytes_read,
|
| - bool* defer) {
|
| - if (!bytes_read)
|
| - return true;
|
| -
|
| - // We have more data to read.
|
| - DCHECK(read_buffer_);
|
| - content_length_ += bytes_read;
|
| -
|
| - // Release the ownership of the buffer, and store a reference
|
| - // to it. A new one will be allocated in OnWillRead().
|
| - net::IOBuffer* buffer = NULL;
|
| - read_buffer_.swap(&buffer);
|
| - // TODO(gauravsh): Should this be handled by a separate thread?
|
| - buffer_.push_back(std::make_pair(buffer, bytes_read));
|
| -
|
| - return true;
|
| -}
|
| -
|
| -bool X509UserCertResourceHandler::OnResponseCompleted(
|
| - int request_id,
|
| - const net::URLRequestStatus& urs,
|
| - const std::string& sec_info) {
|
| - if (urs.status() != net::URLRequestStatus::SUCCESS)
|
| - 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_);
|
| - return true;
|
| -}
|
| -
|
| -void X509UserCertResourceHandler::AssembleResource() {
|
| - // 0-length IOBuffers are not allowed.
|
| - if (content_length_ == 0) {
|
| - resource_buffer_ = NULL;
|
| - return;
|
| - }
|
| -
|
| - // Create the new buffer.
|
| - resource_buffer_ = new net::IOBuffer(content_length_);
|
| -
|
| - // Copy the data into it.
|
| - size_t bytes_copied = 0;
|
| - for (size_t i = 0; i < buffer_.size(); ++i) {
|
| - net::IOBuffer* data = buffer_[i].first;
|
| - size_t data_len = buffer_[i].second;
|
| - DCHECK(data != NULL);
|
| - DCHECK_LE(bytes_copied + data_len, content_length_);
|
| - memcpy(resource_buffer_->data() + bytes_copied, data->data(), data_len);
|
| - bytes_copied += data_len;
|
| - }
|
| - DCHECK_EQ(content_length_, bytes_copied);
|
| -}
|
| -
|
| -} // namespace content
|
|
|