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

Side by Side Diff: content/browser/loader/resource_loader.cc

Issue 27026002: CT: Adding preliminary Certificate Transparency support to Chromium. Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Distinguish between SCTs from unknown logs and unverified ones Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/common/chrome_switches.cc ('k') | content/browser/ssl/ssl_manager.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/loader/resource_loader.h" 5 #include "content/browser/loader/resource_loader.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/metrics/histogram.h" 9 #include "base/metrics/histogram.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 467
468 void ResourceLoader::CompleteResponseStarted() { 468 void ResourceLoader::CompleteResponseStarted() {
469 ResourceRequestInfoImpl* info = GetRequestInfo(); 469 ResourceRequestInfoImpl* info = GetRequestInfo();
470 470
471 scoped_refptr<ResourceResponse> response(new ResourceResponse()); 471 scoped_refptr<ResourceResponse> response(new ResourceResponse());
472 PopulateResourceResponse(request_.get(), response.get()); 472 PopulateResourceResponse(request_.get(), response.get());
473 473
474 if (request_->ssl_info().cert.get()) { 474 if (request_->ssl_info().cert.get()) {
475 int cert_id = CertStore::GetInstance()->StoreCert( 475 int cert_id = CertStore::GetInstance()->StoreCert(
476 request_->ssl_info().cert.get(), info->GetChildID()); 476 request_->ssl_info().cert.get(), info->GetChildID());
477 // XXX(rsleevi): Wire up sending the SCT to the child
478 int signed_certificate_timestamp_id = 0;
477 response->head.security_info = SerializeSecurityInfo( 479 response->head.security_info = SerializeSecurityInfo(
478 cert_id, 480 cert_id,
479 request_->ssl_info().cert_status, 481 request_->ssl_info().cert_status,
480 request_->ssl_info().security_bits, 482 request_->ssl_info().security_bits,
481 request_->ssl_info().connection_status); 483 request_->ssl_info().connection_status,
484 signed_certificate_timestamp_id);
482 } else { 485 } else {
483 // We should not have any SSL state. 486 // We should not have any SSL state.
484 DCHECK(!request_->ssl_info().cert_status && 487 DCHECK(!request_->ssl_info().cert_status &&
485 request_->ssl_info().security_bits == -1 && 488 request_->ssl_info().security_bits == -1 &&
486 !request_->ssl_info().connection_status); 489 !request_->ssl_info().connection_status);
487 } 490 }
488 491
489 delegate_->DidReceiveResponse(this); 492 delegate_->DidReceiveResponse(this);
490 493
491 bool defer = false; 494 bool defer = false;
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 void ResourceLoader::ResponseCompleted() { 578 void ResourceLoader::ResponseCompleted() {
576 VLOG(1) << "ResponseCompleted: " << request_->url().spec(); 579 VLOG(1) << "ResponseCompleted: " << request_->url().spec();
577 RecordHistograms(); 580 RecordHistograms();
578 ResourceRequestInfoImpl* info = GetRequestInfo(); 581 ResourceRequestInfoImpl* info = GetRequestInfo();
579 582
580 std::string security_info; 583 std::string security_info;
581 const net::SSLInfo& ssl_info = request_->ssl_info(); 584 const net::SSLInfo& ssl_info = request_->ssl_info();
582 if (ssl_info.cert.get() != NULL) { 585 if (ssl_info.cert.get() != NULL) {
583 int cert_id = CertStore::GetInstance()->StoreCert(ssl_info.cert.get(), 586 int cert_id = CertStore::GetInstance()->StoreCert(ssl_info.cert.get(),
584 info->GetChildID()); 587 info->GetChildID());
588 // XXX(rsleevi): Wire up the SCTStore
589 int sct_id = 0;
585 security_info = SerializeSecurityInfo( 590 security_info = SerializeSecurityInfo(
586 cert_id, ssl_info.cert_status, ssl_info.security_bits, 591 cert_id, ssl_info.cert_status, ssl_info.security_bits,
587 ssl_info.connection_status); 592 ssl_info.connection_status, sct_id);
588 } 593 }
589 594
590 if (handler_->OnResponseCompleted(info->GetRequestID(), request_->status(), 595 if (handler_->OnResponseCompleted(info->GetRequestID(), request_->status(),
591 security_info)) { 596 security_info)) {
592 // This will result in our destruction. 597 // This will result in our destruction.
593 CallDidFinishLoading(); 598 CallDidFinishLoading();
594 } else { 599 } else {
595 // The handler is not ready to die yet. We will call DidFinishLoading when 600 // The handler is not ready to die yet. We will call DidFinishLoading when
596 // we resume. 601 // we resume.
597 deferred_stage_ = DEFERRED_FINISH; 602 deferred_stage_ = DEFERRED_FINISH;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 case net::URLRequestStatus::FAILED: 634 case net::URLRequestStatus::FAILED:
630 status = STATUS_UNDEFINED; 635 status = STATUS_UNDEFINED;
631 break; 636 break;
632 } 637 }
633 638
634 UMA_HISTOGRAM_ENUMERATION("Net.Prefetch.Pattern", status, STATUS_MAX); 639 UMA_HISTOGRAM_ENUMERATION("Net.Prefetch.Pattern", status, STATUS_MAX);
635 } 640 }
636 } 641 }
637 642
638 } // namespace content 643 } // namespace content
OLDNEW
« no previous file with comments | « chrome/common/chrome_switches.cc ('k') | content/browser/ssl/ssl_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698