| Index: chrome/browser/ssl/chrome_ssl_host_state_delegate.cc
|
| diff --git a/chrome/browser/ssl/chrome_ssl_host_state_delegate.cc b/chrome/browser/ssl/chrome_ssl_host_state_delegate.cc
|
| index 64f622e2877e106b87ea6e4c71815869b4aa93ee..e539310640e7ab1e837171f00e672c08ca936984 100644
|
| --- a/chrome/browser/ssl/chrome_ssl_host_state_delegate.cc
|
| +++ b/chrome/browser/ssl/chrome_ssl_host_state_delegate.cc
|
| @@ -5,7 +5,6 @@
|
| #include "chrome/browser/ssl/chrome_ssl_host_state_delegate.h"
|
|
|
| #include "base/base64.h"
|
| -#include "base/bind.h"
|
| #include "base/command_line.h"
|
| #include "base/logging.h"
|
| #include "base/metrics/field_trial.h"
|
| @@ -20,9 +19,6 @@
|
| #include "components/variations/variations_associated_data.h"
|
| #include "net/base/hash_value.h"
|
| #include "net/cert/x509_certificate.h"
|
| -#include "net/http/http_transaction_factory.h"
|
| -#include "net/url_request/url_request_context.h"
|
| -#include "net/url_request/url_request_context_getter.h"
|
| #include "url/gurl.h"
|
|
|
| namespace {
|
| @@ -46,21 +42,6 @@ const char kSSLCertDecisionVersionKey[] = "version";
|
|
|
| const int kDefaultSSLCertDecisionVersion = 1;
|
|
|
| -// Closes all idle network connections for the given URLRequestContext. This is
|
| -// a big hammer and should be wielded with extreme caution as it can have a big,
|
| -// negative impact on network performance. In this case, it is used by
|
| -// RevokeUserDecisionsHard, which should only be called by rare, user initiated
|
| -// events. See the comment before RevokeUserDecisionsHard implementation for
|
| -// more information.
|
| -void CloseIdleConnections(
|
| - scoped_refptr<net::URLRequestContextGetter> url_request_context_getter) {
|
| - url_request_context_getter->
|
| - GetURLRequestContext()->
|
| - http_transaction_factory()->
|
| - GetSession()->
|
| - CloseIdleConnections();
|
| -}
|
| -
|
| // All SSL decisions are per host (and are shared arcoss schemes), so this
|
| // canonicalizes all hosts into a secure scheme GURL to use with content
|
| // settings. The returned GURL will be the passed in host with an empty path and
|
| @@ -309,7 +290,8 @@ net::CertPolicy::Judgment ChromeSSLHostStateDelegate::QueryPolicy(
|
| return net::CertPolicy::Judgment::UNKNOWN;
|
| }
|
|
|
| -void ChromeSSLHostStateDelegate::RevokeUserDecisions(const std::string& host) {
|
| +void ChromeSSLHostStateDelegate::RevokeAllowAndDenyPreferences(
|
| + const std::string& host) {
|
| GURL url = GetSecureGURLForHost(host);
|
| const ContentSettingsPattern pattern =
|
| ContentSettingsPattern::FromURLNoWildcard(url);
|
| @@ -322,31 +304,8 @@ void ChromeSSLHostStateDelegate::RevokeUserDecisions(const std::string& host) {
|
| NULL);
|
| }
|
|
|
| -// TODO(jww): This will revoke all of the decisions in the browser context.
|
| -// However, the networking stack actually keeps track of its own list of
|
| -// exceptions per-HttpNetworkTransaction in the SSLConfig structure (see the
|
| -// allowed_bad_certs Vector in net/ssl/ssl_config.h). This dual-tracking of
|
| -// exceptions introduces a problem where the browser context can revoke a
|
| -// certificate, but if a transaction reuses a cached version of the SSLConfig
|
| -// (probably from a pooled socket), it may bypass the intestitial layer.
|
| -//
|
| -// Over time, the cached versions should expire and it should converge on
|
| -// showing the interstitial. We probably need to introduce into the networking
|
| -// stack a way revoke SSLConfig's allowed_bad_certs lists per socket.
|
| -//
|
| -// For now, RevokeUserDecisionsHard is our solution for the rare case where it
|
| -// is necessary to revoke the preferences immediately. It does so by flushing
|
| -// idle sockets.
|
| -void ChromeSSLHostStateDelegate::RevokeUserDecisionsHard(
|
| +bool ChromeSSLHostStateDelegate::HasAllowedOrDeniedCert(
|
| const std::string& host) {
|
| - RevokeUserDecisions(host);
|
| - scoped_refptr<net::URLRequestContextGetter> getter(
|
| - profile_->GetRequestContext());
|
| - profile_->GetRequestContext()->GetNetworkTaskRunner()->PostTask(
|
| - FROM_HERE, base::Bind(&CloseIdleConnections, getter));
|
| -}
|
| -
|
| -bool ChromeSSLHostStateDelegate::HasUserDecision(const std::string& host) {
|
| GURL url = GetSecureGURLForHost(host);
|
| const ContentSettingsPattern pattern =
|
| ContentSettingsPattern::FromURLNoWildcard(url);
|
| @@ -373,16 +332,6 @@ bool ChromeSSLHostStateDelegate::HasUserDecision(const std::string& host) {
|
| return false;
|
| }
|
|
|
| -void ChromeSSLHostStateDelegate::HostRanInsecureContent(const std::string& host,
|
| - int pid) {
|
| - ran_insecure_content_hosts_.insert(BrokenHostEntry(host, pid));
|
| -}
|
| -
|
| -bool ChromeSSLHostStateDelegate::DidHostRunInsecureContent(
|
| - const std::string& host,
|
| - int pid) const {
|
| - return !!ran_insecure_content_hosts_.count(BrokenHostEntry(host, pid));
|
| -}
|
| void ChromeSSLHostStateDelegate::SetClock(scoped_ptr<base::Clock> clock) {
|
| clock_.reset(clock.release());
|
| }
|
|
|