diff options
Diffstat (limited to 'chromium/net')
-rw-r--r-- | chromium/net/base/net_error_list.h | 3 | ||||
-rw-r--r-- | chromium/net/cert/mock_cert_verifier.cc | 19 | ||||
-rw-r--r-- | chromium/net/cert/mock_cert_verifier.h | 20 | ||||
-rw-r--r-- | chromium/net/dns/mock_host_resolver.cc | 31 | ||||
-rw-r--r-- | chromium/net/dns/mock_host_resolver.h | 32 | ||||
-rw-r--r-- | chromium/net/net.gyp | 2 | ||||
-rw-r--r-- | chromium/net/quic/quic_http_stream.cc | 7 |
7 files changed, 63 insertions, 51 deletions
diff --git a/chromium/net/base/net_error_list.h b/chromium/net/base/net_error_list.h index 0585c3e18ca..3416cd07c15 100644 --- a/chromium/net/base/net_error_list.h +++ b/chromium/net/base/net_error_list.h @@ -570,6 +570,9 @@ NET_ERROR(RESPONSE_HEADERS_TRUNCATED, -357) // to read any requests sent, so they may be resent. NET_ERROR(QUIC_HANDSHAKE_FAILED, -358) +// An https resource was requested over an insecure QUIC connection. +NET_ERROR(REQUEST_FOR_SECURE_RESOURCE_OVER_INSECURE_QUIC, -359) + // The cache does not have the requested entry. NET_ERROR(CACHE_MISS, -400) diff --git a/chromium/net/cert/mock_cert_verifier.cc b/chromium/net/cert/mock_cert_verifier.cc index a30e3d54c86..ea5538e8c86 100644 --- a/chromium/net/cert/mock_cert_verifier.cc +++ b/chromium/net/cert/mock_cert_verifier.cc @@ -13,6 +13,25 @@ namespace net { +struct MockCertVerifier::Rule { + Rule(X509Certificate* cert, + const std::string& hostname, + const CertVerifyResult& result, + int rv) + : cert(cert), + hostname(hostname), + result(result), + rv(rv) { + DCHECK(cert); + DCHECK(result.verified_cert.get()); + } + + scoped_refptr<X509Certificate> cert; + std::string hostname; + CertVerifyResult result; + int rv; +}; + MockCertVerifier::MockCertVerifier() : default_result_(ERR_CERT_INVALID) {} MockCertVerifier::~MockCertVerifier() {} diff --git a/chromium/net/cert/mock_cert_verifier.h b/chromium/net/cert/mock_cert_verifier.h index 704c66b2b80..5af7b7e7a06 100644 --- a/chromium/net/cert/mock_cert_verifier.h +++ b/chromium/net/cert/mock_cert_verifier.h @@ -57,25 +57,7 @@ class MockCertVerifier : public CertVerifier { int rv); private: - struct Rule { - Rule(X509Certificate* cert, - const std::string& hostname, - const CertVerifyResult& result, - int rv) - : cert(cert), - hostname(hostname), - result(result), - rv(rv) { - DCHECK(cert); - DCHECK(result.verified_cert.get()); - } - - scoped_refptr<X509Certificate> cert; - std::string hostname; - CertVerifyResult result; - int rv; - }; - + struct Rule; typedef std::list<Rule> RuleList; int default_result_; diff --git a/chromium/net/dns/mock_host_resolver.cc b/chromium/net/dns/mock_host_resolver.cc index 25918ba3247..ff5ffbc2f75 100644 --- a/chromium/net/dns/mock_host_resolver.cc +++ b/chromium/net/dns/mock_host_resolver.cc @@ -212,6 +212,37 @@ void MockHostResolverBase::ResolveNow(size_t id) { //----------------------------------------------------------------------------- +struct RuleBasedHostResolverProc::Rule { + enum ResolverType { + kResolverTypeFail, + kResolverTypeSystem, + kResolverTypeIPLiteral, + }; + + ResolverType resolver_type; + std::string host_pattern; + AddressFamily address_family; + HostResolverFlags host_resolver_flags; + std::string replacement; + std::string canonical_name; + int latency_ms; // In milliseconds. + + Rule(ResolverType resolver_type, + const std::string& host_pattern, + AddressFamily address_family, + HostResolverFlags host_resolver_flags, + const std::string& replacement, + const std::string& canonical_name, + int latency_ms) + : resolver_type(resolver_type), + host_pattern(host_pattern), + address_family(address_family), + host_resolver_flags(host_resolver_flags), + replacement(replacement), + canonical_name(canonical_name), + latency_ms(latency_ms) {} +}; + RuleBasedHostResolverProc::RuleBasedHostResolverProc(HostResolverProc* previous) : HostResolverProc(previous) { } diff --git a/chromium/net/dns/mock_host_resolver.h b/chromium/net/dns/mock_host_resolver.h index f8a424011a9..3593fbdfe91 100644 --- a/chromium/net/dns/mock_host_resolver.h +++ b/chromium/net/dns/mock_host_resolver.h @@ -209,37 +209,7 @@ class RuleBasedHostResolverProc : public HostResolverProc { int* os_error) OVERRIDE; private: - struct Rule { - enum ResolverType { - kResolverTypeFail, - kResolverTypeSystem, - kResolverTypeIPLiteral, - }; - - ResolverType resolver_type; - std::string host_pattern; - AddressFamily address_family; - HostResolverFlags host_resolver_flags; - std::string replacement; - std::string canonical_name; - int latency_ms; // In milliseconds. - - Rule(ResolverType resolver_type, - const std::string& host_pattern, - AddressFamily address_family, - HostResolverFlags host_resolver_flags, - const std::string& replacement, - const std::string& canonical_name, - int latency_ms) - : resolver_type(resolver_type), - host_pattern(host_pattern), - address_family(address_family), - host_resolver_flags(host_resolver_flags), - replacement(replacement), - canonical_name(canonical_name), - latency_ms(latency_ms) {} - }; - + struct Rule; typedef std::list<Rule> RuleList; virtual ~RuleBasedHostResolverProc(); diff --git a/chromium/net/net.gyp b/chromium/net/net.gyp index 69f482751c9..c2d618ef220 100644 --- a/chromium/net/net.gyp +++ b/chromium/net/net.gyp @@ -1366,7 +1366,7 @@ '../build/linux/system.gyp:gio', ], }], - [ 'desktop_linux == 1 or chromeos == 1 or qt_os == "embedded_linux"', { + [ 'desktop_linux == 1 or chromeos == 1', { 'conditions': [ ['use_openssl==1', { 'dependencies': [ diff --git a/chromium/net/quic/quic_http_stream.cc b/chromium/net/quic/quic_http_stream.cc index 56dbbab13e5..f8b2e6517dc 100644 --- a/chromium/net/quic/quic_http_stream.cc +++ b/chromium/net/quic/quic_http_stream.cc @@ -58,6 +58,13 @@ int QuicHttpStream::InitializeStream(const HttpRequestInfo* request_info, return was_handshake_confirmed_ ? ERR_CONNECTION_CLOSED : ERR_QUIC_HANDSHAKE_FAILED; + if (request_info->url.SchemeIsSecure()) { + SSLInfo ssl_info; + if (!session_->GetSSLInfo(&ssl_info) || !ssl_info.cert) { + return ERR_REQUEST_FOR_SECURE_RESOURCE_OVER_INSECURE_QUIC; + } + } + stream_net_log_ = stream_net_log; request_info_ = request_info; priority_ = priority; |